MySQL基本SQL操作
1、数据库操作sql基本语句(databases)
1)显示数据库 SHOW DATABASES;
2)创建数据库:需要指定字符集,这里以python_mysql为例,DEFAULT CHARSET utf8 COLLATE utf8_general_ci;设置默认的字符集,可以自己修改
CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3)使用数据库 USE python_mysql(数据库名称)
4) 显示当前数据库时间 SELECT NOW();
5)显示当前数据库版本 SELECT VERSION();
6)显示创建数据库时候的语句 show create database python_mysql;
7)查看当前使用的数据库 SELECT DATABASE();
8)删除数据库 drop database python_mysql;
2、数据表操作sql基本语句(table)
1)查看表 show tables;
2)创建表
这里创建表格式 create table 表名(列名 是否为空,是否主键,是否自增长,列名 约束...,列名);
这里以第一个为讲解,创建一个student表,id设为主键,unsigned(选择无符号范围,正整数,根据int约束(0 ~ 4294967295),signed为有符号范围(-2147483648 ~2147483647)),not null表示不为空,主键不能为空, primary key 表示设置成主键,auto_increment 表示自增长,
3)查看表类型 desc student;
这里我们可以看到对表做的约束,id 作为主键,不为空,自增长,范围无符号,注意创建表的合理性,这里我们的age使用tinyint,年龄一般不会超多255
3)查看表数据 select * from student;
4) 增加数据: insert into student values(1,"张三",18,175.5,"男",1);
5)再次查看数据 select * from student;
6)增加字段 alter table 表名 add 字段名 字段类型;(对表操作都是alert)
7)修改表的字段
第一种:不修改字段名 alter table 表名 modify 列名 约束类型;
第二种:修改字段名 alter table student change 旧列名 新列名 约束;
8)查询 select * from 表名;
3、数据操作sql基本语句(CRUD)
1)增加数据:
单行插入:insert into 表名 values (不能为null的值);
对于自增长的默认值主键,我们可以使用0,null,default表示,产生自增长,对于枚举的值,我们可以按照顺序用1,2......表示
insert into student values (0,"李四",22,188,"男",2,19901222);
insert into student values (null,"王五",22,188.88,1,2,19901222);
部分插入:insert into 表名(字段名,字段名)values(不可以为null的值)
insert into student (id,name,age,height,gender,class_id)values(default,'喜洋洋',18,180,'男',3);
多行插入:
insert into student (id,name,age,height,gender,class_id)
values(default,'喜洋洋',18,180,'男',3),
(0,'美羊羊',17,175,'女',3),
(null,'懒洋洋',18,170,'男',2);
2) 修改数据
全部修改:update 表名 set 列名=值;
update student set gender=1; 将gender列全部修改成男
条件修改:update 表名 set 列名=值 where (判断条件)age < 18;
update student set gender=2 where age < 18; 将年纪小于18的修改成女
3)查找数据
查找表内全部数据:select * from 表名
指定条件查找数据:查找年纪大于18的人 select * from 表名 where (判断条件)age>18;
select * from student where age>18;
查询指定列:select 列名,列名 from 表名
select name,age from student;
对查询的列起别名 select 列名 as 别名 ,列名 as 别名 from 表名
select name as 姓名,age as 年龄 from student;
字段的顺序 谁写前面,先显示谁 select 列名 as 别名, 列名 as 别名,列名 as 别名 from student;
select id as 序号,age as 年龄,name as 姓名 from student;
4)删除数据
物理删除:
删除整张表(基本不用):delete from 表名
根据条件删除表:delete from 表名 where (判断条件)id<5 and age<=18;
逻辑删除(伪删除):
定义一个字段,不同的用来表示是否删除
增加一个is_delete 列:alter table student add is_delete int default 0;
比如说我们像要删除年龄大于等于22岁的数据,我们可以进行伪删除
update student set is_delete=1 where age>=22;
那么我们查询的语句就可以是:
select * from student where is_delete=0;