博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql入门
阅读量:5281 次
发布时间:2019-06-14

本文共 3188 字,大约阅读时间需要 10 分钟。

一、基本操作

#mysql -h localhost -u root -p;//链接mysql

#mysql -u root -p password 123456;//修改root用户密码为123456

 >show databases;//查看数据存在

>create database db1;//创建数据库db1

>use db1;//进入数据库db1

>drop database db1;//删除数据库db1

>show tables;//查看表存在

>exit;//退出mysql

>create table person(id int(4),name char(10),age int);//创建表person

>create table p(id int,name char(10))charset=gbk;//创建支持插入中文(gbk/utf8)记录的表p

>create table p(id int auto_increment primary key,name char(10) not null,age int default 100);//带列完整性约束创建

>desc person;//查看表结构描述

>insert into person(id,name,age) values(1,'aaa',22);//向表person插入记录

>insert into person set id=1,name='aaa',age=22;//另一种插入方式

>select * from person;//查询所有记录

>update person set age=20 where name='aaa';//更新数据记录

*********where条件**********

1.where后跟一个逻辑表达式;

2.逻辑表达式内部可使用比较符号,如=,<,>,<=,>=,<>等,还有between...and,in等运算符;

3.逻辑表达式之间可以用and,or操作;

***************************

>delete from person where id=1;//删除记录

>truncate person;//清空表

>drop table person;//删除表person

********修饰符*****************

1.主键:在写完所有字段后,加一个primary key(col1,col2,....)

2.自增:auto_increment

3.非空:not null

4.唯一:unique

5.默认值:default value

*****************************

二、查询

简单查询

select *是效率最差的查询方式。

语法格式:select 列1,列2... from 表名 其他条件

>select name,age from person where id=1;

>select name as 姓名,age as 年龄 from person;//指定别名

统计信息:count(列名),sum(列名),max(列名),min(列名),avg(列名)

>select now();//当前时间

>select 8*7*9;//计算器

>select distinct id,age from person;//去重

>select id,name from person where id between 3 and 7;//查询id在3和7之间的记录

>select name from person where id not in(3,4,5);//查询id不为3,4,5的记录

>select name from person where age is not null;//查询年龄不为空的记录

not可以和between,in,is搭配,意味取反。

>select name from person where name is like '%A_';//查询名字倒数第二个字符为A的记录

>select name from person where name regexp '大';//正则表达式查询含大的记录

>select count(name) from person where group by age;//按年龄分组统计人数

>select count(name) from person where group by age having count(name)>1;//过滤掉人数为1的记录

>select count(name) from person where group by age having age!=40;//年龄40的不参与分组

  where having
顺序 在group之前 在group之后
可用字段 所有 group,select,外查询
习惯 常用 与group by连用

 

>select * from person limit 0,3;//取前三条记录

>select * from person order by name asc,age desc;//查询结果按姓名升序年龄降序排序

>select * from p1 union select * from p2;//联合,去重

>select * from p1 union all select * from p2;//联合,不去重

子查询

将一个查询语句嵌套到另一个查询、插入、修改、删除语句中去,这个查询语句就是一个子查询。

实例:

>create table p1(id int,name char(10),age int)charset=utf8;

>create table p2(id int,name char(10),age int)charset=utf8;

>select id,name,age from p1 where id>=(select max(id) from p2);//where型子查询(单一标量)

>select id,name,age from p1 where id in (select id from p2);//列子查询

>select * from (select * from p1 where id<=floor(ran()*5)) as p3 where name regexp '大';//from型子查询

>select * from p1 where exists(select * from p2 where p1.age=p2.age);//exists型子查询

连接查询

连接查询即多表查询。

外连接:左连接、右连接、全连接(mysql不支持全连接)

>select * from p1 left join p2 on p1.id=p2.id;//左连接

>select * from p1 right join p2 on p1.id=p2.id;//右连接

交叉连接:表间进行笛卡尔积

>select * from p1,p2;

内连接:内连接每条记录的连接条件都是相同的

>select * from p1 inner join p2 on p1.id=p2.id;//内连接1

>select * from p1 inner join p2 using(id);//内连接2

自然连接:

>select * from p1 natural join p2;

 

转载于:https://www.cnblogs.com/feilv/p/4062613.html

你可能感兴趣的文章
Arduino编程器 USBasp USBtinyISP FT232-ISP 对比 区别
查看>>
高频焊台源码,改进版V2
查看>>
宝塔面板安装的mysql5.5用命令行kill -9后启动不了
查看>>
Android(java)学习笔记118:BroadcastReceiver之 外拨电话的广播接收者
查看>>
Android(java)学习笔记165:开发一个多界面的应用程序之不同界面间互相传递数据(短信助手案例的优化:请求码和结果码)...
查看>>
Eclipse导入工程遇到的一些问题之中文乱码
查看>>
leetcode[132]Palindrome Partitioning II
查看>>
leetcode[71]Simplify Path
查看>>
团队项目测评博客
查看>>
discuz 文件模板edit
查看>>
查看CPU数量和核心数
查看>>
Android异步加载网络图片
查看>>
python学习之 - XML
查看>>
css问题小计
查看>>
Laravel学习笔记(三)数据库 数据库迁移
查看>>
ORACLE查看并修改最大连接数
查看>>
box-flex不均分问题
查看>>
Python--GIL 详解
查看>>
Oracle数据导入Mysql中
查看>>
BZOJ-4424 &&CodeForces-19E Fairy DP+dfs (Link-Cut-Tree可A)
查看>>