zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

数据库常用语句

2023-02-19 12:23:26 时间

数据库常用语句

目录

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、下列语句中的各种括号说明

尖括号<>代表参数,不用写
小括号( )是语法要求,需要写
中括号[ ]是可选语法参数,不用写

2、启动/关闭mysql服务器

net start mysql
net stop mysql

3、登入/退出数据库

mysql -h <主机名字(本机可省略)> -P <端口号(默认端口号可省略3306)> -u <用户名> -p <密码>
quit 或 exit

4、创建数据库

create database <数据库名字> character set <字符集(不写为默认字符集)> collate <校对规则名(不写为默认校对规则)>
character set 和 collate 可省略

5、查看数据库

show databases 显示所有数据库
show create database <数据库名> 显示数据库创建语句

6、修改数据库

alter database <数据库名字> character set <字符集> collate <校对规则名>

7、删除数据库

drop database <数据库名>

8、选择数据库

use <数据库名>

9、MySQL注释

# --空格 /* */

10、MySQL系统帮助

help <'查询内容'> 如:help 'create table' 为查询创建表语法

11、字段约束

主键约束:primary key

唯一约束:unique

非空约束:not unll

外键约束:一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键
[constraint 外键名] foreign key(外键列名) reference <主表名>(主键列名)
创建表时在末尾设定外键约束,外键名可省略,系统会给默认外键名
alter table <外表名> add [constraint 外键名] foreign key(外键列名) references <主表名>(主键列名)
修改表时加入外键约束,外键名可省略,系统会给默认外键名
alter table <表名> drop foreign key <外键名> 删除外键约束

12、新建表

create table <表名> (
<列名1> <数据类型> [字段约束],
<列名2> <数据类型> [字段约束]
)
字段约束可选

13、查看表

show tables 查看当前所有表
show create table <表名> 查看当前数据库建表语句
desc <表名> 查看表结构

14、修改表

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、删除表

drop table <表名>

16、插入数据

insert into <表名> (列名1,列名2) values (值1,值2),(值1,值2)
可选择插入部分列,如果不写列名则插入所有列 可一次插入多条数据

insert into <表名> set <列名1>=<值1>,<列名2>=<值2> 只能插入单条数据,可以选择列插入,更加灵活

17、mysql乱码解决

show variable like'charac%'; 查看当前数据库中字符集配置

18、更新/修改数据

update <表名> set <列名1=值1>,<列名2=值2> where <条件>
修改数据,可修改多条数据,用逗号隔开,不加where修改所有列

19、删除数据

delete from <表名> where <条件>
删除数据,不加where删除表中所有数据(truncate table <表名>也是删除所有数据,效率更高 ),
在使用这条语句后,再次向这张空表插入数据,会主键id重新排序,使用delete语句则不会重置。
所以要将表中数据清空使用truncate更好。

20、查询数据

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、多表查询

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> 右外连接(在内连接的基础上加入右边的剩余数据)