数据库常用语句
目录
1、下列语句中的各种括号说明
2、启动/关闭mysql服务器
3、登入/退出数据库
4、创建数据库
5、查看数据库
6、修改数据库
7、删除数据库
8、选择数据库
9、MySQL注释
10、MySQL系统帮助
11、字段约束
12、新建表
13、查看表
14、修改表
15、删除表
16、插入数据
17、mysql乱码解决
18、更新/修改数据
19、删除数据
20、查询数据
21、多表查询
1、下列语句中的各种括号说明
代码语言:javascript复制尖括号<>代表参数,不用写
小括号( )是语法要求,需要写
中括号[ ]是可选语法参数,不用写
2、启动/关闭mysql服务器
代码语言:javascript复制net start mysql
net stop mysql
3、登入/退出数据库
代码语言:javascript复制mysql -h <主机名字(本机可省略)> -P <端口号(默认端口号可省略3306)> -u <用户名> -p <密码>
quit 或 exit
4、创建数据库
代码语言:javascript复制create database <数据库名字> character set <字符集(不写为默认字符集)> collate <校对规则名(不写为默认校对规则)>
character set 和 collate 可省略
5、查看数据库
代码语言:javascript复制show databases 显示所有数据库
show create database <数据库名> 显示数据库创建语句
6、修改数据库
代码语言:javascript复制alter database <数据库名字> character set <字符集> collate <校对规则名>
7、删除数据库
代码语言:javascript复制drop database <数据库名>
8、选择数据库
代码语言:javascript复制use <数据库名>
9、MySQL注释
代码语言:javascript复制# --空格 /* */
10、MySQL系统帮助
代码语言:javascript复制help <'查询内容'> 如:help 'create table' 为查询创建表语法
11、字段约束
代码语言:javascript复制主键约束:primary key
唯一约束:unique
非空约束:not unll
外键约束:一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键
[constraint 外键名] foreign key(外键列名) reference <主表名>(主键列名)
创建表时在末尾设定外键约束,外键名可省略,系统会给默认外键名
alter table <外表名> add [constraint 外键名] foreign key(外键列名) references <主表名>(主键列名)
修改表时加入外键约束,外键名可省略,系统会给默认外键名
alter table <表名> drop foreign key <外键名> 删除外键约束
12、新建表
代码语言:javascript复制create table <表名> (
<列名1> <数据类型> [字段约束],
<列名2> <数据类型> [字段约束]
)
字段约束可选
13、查看表
代码语言:javascript复制show tables 查看当前所有表
show create table <表名> 查看当前数据库建表语句
desc <表名> 查看表结构
14、修改表
代码语言:javascript复制alter table<旧表名> rename to <新表名> 修改表名
alter table <表名> add <列名> <数据类型> [first/after 已存在的字段名]
增加列(first为可选参数,将新添加的字段置顶;after为可选参数,将新添加的字段添加已存在的字段名后面)
alter table <表名> modify <列名> <数据类型>修改列数据类型
alter table <表名> drop <列名> 删除列
alter table <表名> change <旧列名> <新列名> <新数据类型> 修改列名
alter table <表名> modify <列名1> <数据类型> after <列名2> 把列1放到列2后面
alter table <表名> modify <列名1> <数据类型> first 把列1置顶
alter table <表名> character set <字符集> 修改表的字符集
15、删除表
代码语言:javascript复制drop table <表名>
16、插入数据
代码语言:javascript复制insert into <表名> (列名1,列名2) values (值1,值2),(值1,值2)
可选择插入部分列,如果不写列名则插入所有列 可一次插入多条数据
insert into <表名> set <列名1>=<值1>,<列名2>=<值2> 只能插入单条数据,可以选择列插入,更加灵活
17、mysql乱码解决
代码语言:javascript复制show variable like'charac%'; 查看当前数据库中字符集配置
18、更新/修改数据
代码语言:javascript复制update <表名> set <列名1=值1>,<列名2=值2> where <条件>
修改数据,可修改多条数据,用逗号隔开,不加where修改所有列
19、删除数据
代码语言:javascript复制delete from <表名> where <条件>
删除数据,不加where删除表中所有数据(truncate table <表名>也是删除所有数据,效率更高 ),
在使用这条语句后,再次向这张空表插入数据,会主键id重新排序,使用delete语句则不会重置。
所以要将表中数据清空使用truncate更好。
20、查询数据
代码语言:javascript复制select [distinct] <列1>,<列2> form <表名>
查询数据,查询所有列可将列名替换成*,distinct为去重,可省略
查询sql的关键字书写顺序
select from where group by having order by limit
查询sql的关键字执行顺序
from where group by having select order by limit
编写技巧
根据需求挑选关键字,按照书写顺序依次排列关键字 按照关键字的执行顺序填空
where 表达式:可选,限定查询满足的条件。
group by 表达式:可选,按照指定的字段分组。
having 表达式:可选,限定查询满足的条件,用于使用了聚合函数限定条件。
order by 表达式:可选,指明排序的方式,升序asc和降序desc
limit 起始编号, 查询条数:可选,设置每次显示查询出来的数据条数。
21、多表查询
代码语言:javascript复制select * from staff inner join department on <条件:表1.列1=表2.列2> 内连接查询,只返回两个表共有的部分(可以理解为交集)
select * from staff left join department on <条件:表1.列1=表2.列2> 左外连接(在内连接的基础上加入左边的剩余数据)
select * from staff right join department on <条件:表1.列1=表2.列2> 右外连接(在内连接的基础上加入右边的剩余数据)