1.基础操作
1.1查看所有数据库
show databases;
1.2创建数据库
create database student; --create database数据库名
1.3使用数据库
use student; -- use 数据库名
1.4查看所有表
show tables;
1.5查看表信息
describe student; -- 显示数据库表信息
2.操作表格
2.1创建表格
CREATE TABLE tablename (
`字段名` 列类型[属性] [索引] [注释],
`字段名` 列类型[属性] [索引] [注释],
`字段名` 列类型[属性] [索引] [注释],
......
`字段名` 列类型[属性] [索引] [注释],
)[表类型][字符集设置][注释];
2.2创建一个学生表
/* 创建一个学生表
学号 int 登录密码 varchar(20) 姓名,性别 varchar(20) 出生日期(datetime) ,家庭住址, email
*/
create table if not exists student (
`id` int(4) not null auto_increment comment '学号',
`name` varchar(30) not null DEFAULT '匿名' comment '姓名',
`pwd` varchar(30) not null DEFAULT '123456' comment '密码',
`sex` varchar(2) not null DEFAULT '女' comment '性别',
`birthday` datetime DEFAULT null comment '出生日期',
`address` varchar(100) DEFAULT null comment '家庭住址',
`email` varchar(50) DEFAULT null comment '邮箱',
primary key (id)
)engine=INNODB DEFAULT CHAR SET=utf8
CREATE TABLE:用来创建一个新的表格。
IF NOT EXISTS:如果这个表格不存在,则创建它。
id:一个整数类型的列,占用4个字节,用来存储学号。这个列是主键,也就是说,每个学生的学号必须是唯一的。
name:一个字符串类型的列,最大长度为30个字符,用来存储学生的姓名。如果没有提供姓名,则默认为“匿名”。
pwd:一个字符串类型的列,最大长度为30个字符,用来存储学生的密码。如果没有提供密码,则默认为“123456”。
sex:一个字符串类型的列,最大长度为2个字符,用来存储学生的性别。如果没有提供性别,则默认为“女”。
birthday:一个日期和时间类型的列,用来存储学生的出生日期,如果没有提供出生日期,则默认为NULL。
address:一个字符串类型的列,最大长度为100个字符,用来存储学生的家庭住址。如果没有提供家庭住址,则默认为NULL。
email:一个字符串类型的列,最大长度为50个字符,用来存储学生的电子邮箱。如果没有提供电子邮箱,则默认为NULL。
comment是用于添加注释的关键字
DEFAULT关键字用于设置字段的默认值
PRIMARY KEY:定义id列为主键,也就是说,每个学生的学号必须是唯一的。
ENGINE=INNODB:指定存储引擎为InnoDB,InnoDB是MySQL的一种事务性存储引擎,支持ACID事务。
DEFAULT CHARSET=utf8:指定字符集为utf8,这样可以支持中文等非ASCII字符集的数据。如果没有指定字符集,则默认为数据库的默认字符集。
2.3查看表结构
desc student;
2.4修改表格
-- alter table 旧表名 rename as 新表明;
alter table student rename as student1;
2.5增加表格字段
-- 增加表字段 alter table 表名 add 字段名 列属性;
alter table student1 add test int(11);
-- 修改字段类型,约束
alter table student1 modify test varchar(11);
2.6删除表格字段
-- 删除表格字段
alter table student1 drop test;
2.7删除表格
-- 删除表格
drop table if exists student;
3.操作数据
3.1MySQL是一种常用的关系型数据库管理系统,支持许多不同类型的语句。以下是一些常用的语句:
SELECT:用于从表中选择数据
UPDATE:用于更新表中现有的数据
DELETE:用于从表中删除数据
INSERT INTO:用于将新数据插入表中
WHERE:用于限制查询结果的返回
ORDER BY:用于根据一个或多个列对查询结果进行排序
LIMIT:用于限制返回的行数
JOIN:用于将两个或多个表中的数据合并在一起
3.2插入语句
-- insert into 表名(字段1,字段2) value('值1','值2')
insert into student1(id, name, pwd, sex, birthday, address, email, age) value ('1','小红','123456','男','2021/5/5','福州','1@qq.com','19')
注意事项:
-
字段与字段之间使用英文逗号隔开
-
表格设置字段为空的可以省略,但是后面的值必须一一对应
3.3删除语句
-- 删除一行:delete from 表名 where 条件
delete from student1 where id = 1
-- 清空表格:truncate 表名 , delete from 表名
delete from student1
truncate student1
delete 和 truncate的区别
-
相同点:都能删除数据,但不会删除表结构
-
不同点:
-
truncate 会将自增归0
-
delete 不会自增归0
-
3.4修改语句
-- update 表名 set 字段名 = '新值' where 条件
update student1 set name = '小李' where id = 1
update student1 set name = '小李' where id < 3
-- 修改 区间范围内
update student1 set name = '小李' where id between 2 and 5
-- 在不指定条件的情况下,会改变所有的内容
update student1 set name = '小李'
-- 注意:一般来讲不会不指定条件,如果在公司不小心修改了,赶紧跑路吧!!!
3.5查询语句
-- 查询全部信息 select 字段 from 表名;
select * from student1;
-- 查询指定字段
select id,name from student1;
-- 给查询结果取别名
select id as '学号',name as '姓名' from student1;
-- 在名为 student1 的表中,选出所有学生的姓名,并且将 '姓名:' 和学生的姓名字符串 'name' 进行拼接
select concat('姓名:',name) as '新名字' from student1;
4.where条件
where条件子句是SQL语句中的一部分,用于指定如何过滤检索数据。该子句通常用于select语句中
4.1逻辑运算符
运算符 语法 描述
and && a and b a && b 逻辑与,两个都为真,结果为真
or || a or b a || b 逻辑或,其中一个为真,则结果为真
not != not a !a 逻辑非,真为假,假为真
4.2使用样例
-- 查询性别为女,年龄大于等于19的所有记录
select * from student1 where sex = '女' and age >= 19
4.3模糊查询
运算符 语法 描述
is null a is null 如果操作符为null,结果为真
is not null a is not null 如果操作符不为null,结果为真
between a between b and c 若a在b和c之间,结果为真
like a like b SQL匹配,如果a匹配b,则结果为真
in a in (a1,a2,a3) 如果a在a1或者a2...其中的某一个值,结果为真
4.4使用样例
-- 查询名字以小开头的
select id,name from student1 where name like '小%';
-- 查询以小开头,只有二个字的
select id,name from student1 where name like '小_';
-- id 1,2,3的数据
select id,name from student1 where id in (1,2,3)