数据库常用语句
2021-02-28 11:59:09 196 举报
AI智能生成
数据库常用语句包括查询、插入、更新和删除等操作。其中,查询语句用于从数据库中检索数据,可以使用SELECT语句进行简单查询,也可以使用JOIN、GROUP BY和HAVING等关键字进行复杂查询。插入语句用于向数据库中添加新的记录,可以使用INSERT INTO语句将数据插入到指定表中。更新语句用于修改数据库中的现有数据,可以使用UPDATE语句将指定记录的字段值进行修改。删除语句用于从数据库中删除不需要的记录,可以使用DELETE语句将指定记录永久删除或将其标记为已删除。通过这些常用语句,可以方便地对数据库进行管理和操作。
作者其他创作
大纲/内容
下列语句中的各种括号说明
尖括号<>代表参数不用写
小括号( )是语法要求,需要写
中括号[ ]是可选语法参数,不用写
启动/关闭mysql服务器
net start mysql
net stop mysql
登入/退出数据库
mysql -h <主机名字(本机可省略)> -P <端口号(默认端口号可省略3306)> -u <用户名> -p <密码>
quit或exit
创建数据库
create database <数据库名字> character set <字符集(不写为默认字符集)> collate <校对规则名(不写为默认校对规则)>
character set和collate可省略
查看数据库
show databases 显示所有数据库
show create database <数据库名> 显示数据库创建语句
修改数据库
alter database <数据库名字> character set <字符集> collate <校对规则名>
删除数据库
drop database <数据库名>
选择数据库
use <数据库名>
MySQL注释
# --空格 /* */
MySQL系统帮助
help <'查询内容'>如:help 'create table' 为查询创建表语法
字段约束
主键约束:primary key
唯一约束:unique
非空约束:not unll
外键约束:一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键
[constraint 外键名] foreign key(外键列名) reference <主表名>(主键列名)
创建表时在末尾设定外键约束,外键名可省略,系统会给默认外键名
创建表时在末尾设定外键约束,外键名可省略,系统会给默认外键名
alter table <外表名> add [constraint 外键名] foreign key(外键列名) references <主表名>(主键列名)
修改表时加入外键约束,外键名可省略,系统会给默认外键名
修改表时加入外键约束,外键名可省略,系统会给默认外键名
alter table <表名> drop foreign key <外键名> 删除外键约束
新建表
create table <表名> (
<列名1> <数据类型> [字段约束],
<列名2> <数据类型> [字段约束]
)
<列名1> <数据类型> [字段约束],
<列名2> <数据类型> [字段约束]
)
字段约束可选
查看表
show tables 查看当前所有表
show create table <表名> 查看当前数据库建表语句
desc <表名> 查看表结构
修改表
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 <表名> modify <列名1> <数据类型> first 把列1置顶
alter table <表名> character set <字符集> 修改表的字符集
删除表
drop table <表名>
插入数据
insert into <表名> (列名1,列名2) values (值1,值2),(值1,值2)
可选择插入部分列,如果不写列名则插入所有列
可一次插入多条数据
insert into <表名> set <列名1>=<值1>,<列名2>=<值2> 只能插入单条数据,可以选择列插入,更加灵活
mysql乱码解决
show variable like'charac%'; 查看当前数据库中字符集配置
更新/修改数据
update <表名> set <列名1=值1>,<列名2=值2> where <条件>
修改数据,可修改多条数据,用逗号隔开,不加where修改所有列
删除数据
delete from <表名> where <条件>
删除数据,不加where删除表中所有数据(truncate table <表名>也是删除所有数据,效率更高 ),在使用这条语句后,再次向这张空表插入数据,会主键id重新排序,使用delete语句则不会重置。所以要将表中数据清空使用truncate更好。
查询数据
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 起始编号, 查询条数:可选,设置每次显示查询出来的数据条数。
多表查询
select * from staff inner join department on <条件:表1.列1=表2.列2> 内连接查询,只返回两个表共有的部分(可以理解为交集)
select * from staff left join department on <条件:表1.列1=表2.列2> 左外连接(在内连接的基础上加入左边的剩余数据)
select * feom staff right join department on <条件:表1.列1=表2.列2> 右外连接(在内连接的基础上加入右边的剩余数据)
0 条评论
下一页