最近更新时间:2024.04.14
基本命令
mysql -uroot -p ===连接数据库(-p=password,需要输入密码)(-uroot=以root用户登录)
show databases/tables; ===显示所有数据库/表
use [库名]; ===使用某个数据库
desc [表名]; ===只查看某表的结构,不显示数据
select database(); ===查看当前使用的是哪个数据库
查询操作
【普通查询】
select [列名1],[列名2],... from [表名];
【带条件查询】
select [列名1],[列名2],... from [表名] where [条件];
【查询结果自动排序】
select [列名1],[列名2],... from [表名] order by [列名] [ASC|DESC]; ===按照指定列名中数据[升序|降序]排列所有数据
【分组查询】
select [列名1],[聚合函数](列名2) from [表名] where [条件] group by [列名1];
示例:SELECT customer_id,COUNT(order_id) AS total_orders,SUM(amount) AS total_amount FROM orders GROUP BY customer_id;
【联合查询】
select * from [table1] union select * from [table2]
select * from [table1] union select 1,2,3 from [table2] #table1有3列,则右边查询带有常量也必须是三个
注意:
table1和table2的列数需要相同(即左右两个select查询的列数一致)
在数据库中查询显示的结果,列名由第一个select语句决定
【子查询】
select [列名1] from [表名1] where [列名1] IN (select [列名2] from [表名2]);
聚合函数可以是 COUNT(), SUM(), AVG(), MAX(), MIN() 等,用于对一组值执行计算。
AS 表示为列指定别名,查询结果中,某列按照指定的别名显示。
创建&删除
【创建表】
create table [表名] ([列名1] [数据类型(字符大小)] [字段约束和属性],...,字段n);
示例:create table students (ID int primary key,Name varchar(50),Age int);
create database [库名]; ===创建数据库
【删除表中数据】
truncate table [表名]; ===直接删除表中所有数据但不删除表,不会记录任何事务日志,删除后无法恢复
delete from [表名]; ===和上面同理,但有记录
delete from [表名] where [条件]; ===将删除表中满足特定条件的行,并且每个删除的行都会被记录在事务日志中
示例:delete from students where age<18;
drop database [库名]; ===删除整个数据库
drop table [表名]; ===直接删除整个表
新增&修改数据
【向表中插入数据】
insert into [表名](列名1,列名2,...,列名n)values(值1, 值2, 值3,...,值n),(值1, 值2, 值3,...,值n),...;
示例:INSERT INTO students(id, name, age) VALUES (1,'张三',20),(2,'李四',22),(3,'王五',21);
【修改表中数据】
update [表名] set [列名1=值1],[列名2=值2],... where [条件];
示例:UPDATE students SET age=23 WHERE id=3;
字段属性和约束
not null //不允许为空
default [值] //设置默认值
unique //字段值唯一,可以为空
primary key //主键属性(列级完整性约束条件)
foreign key ("列名1") references [表名2](["列名2"]) //外键属性(表级完整性约束条件),列名1为参照码,表名2为被参照表,被参照列为表2中的列名2。