数据库操作
CRUD(建查改删)
数据库的CRUD
1.C(Creat) 建库
建库
create database 数据库名称;
当数据库存在时会报错,所以避免此状况出现我们加上条件语句
create database if not exists 要创建的数据库名字
没有指定的字符集的话默认跟配置有关
要制定字符集需要用
create database 数据库名称 character set 字符集名称(utf8,gdk)
2.R(Retrieve)查库
** 查询所有数据库的名称:**
show databases;
查询当前数据库所用字符集
show create database 所查数据库;
查询当前使用的库
select database();
切换数据库
use 数据库名字;
3.U(Update)改库
修改数据库的字符集
alter database 数据库名称 character set 字符集名称;
4.D(Delete)删库
删除数据库
drop database 数据库名称;
如果不存在会报错所以加上判断语句
drop database if exists 数据库名称;
数据表的CRUD
1.C(Creat) 建表
建表的时候记得加逗号,除了最后一行不用加
create table 表名(
数据名称(列名)1 数据类型1,
数据名称(列名)2 数据类型2,
...
数据名称(列名)n 数据类型n,
);
在创建表的时候可以加入各种约束
比如
unique 数据独一,不能出现一样的
not null 不能使数据为空
primary key 设置主键
primary key( 列名1,列名2,...) 设置联合主键
auto_increment 自动增长,如果设数据为空则根据上一个数据值+1
foreign key (当前表中被约束的外键列) references 关联的主表名称(主表关联的列名)设置外键
default 设置默认值
...
复制表建立新表
create table 新建表 like 被复制的表
2.R(Retrieve)查表
查看表的数据
查看指定的字段
select 查找所含数据(字段)1,数据(字段)2... ,数据n from 表名 例如 select id,name from student
查看所含所有数据
select * from 表名
查看去重后的数据 只有当所选的字段全部相同时才会去重
select distinct 字段1,字段2...字段n from 表名
还有很多的查询输出DQL这里就简短写几个
计算列数据
select 所查数据1,数据2... ,数据n,数据1+数据2+... as 别名 from 表名
as(可以用来起别名)也可以空格加上别名省略as
排序查询
select 所查数据1,数据2... ,数据n from 表名 order by 进行排序的字段1,字段2 [排序方式]
默认升序排列 ,也可以在排序方式写 ASC: 升序排列 DESC: 降序排列
列如
select * from student order by score DESC (降序排列)
条件查询
select 所查数据1,数据2... ,数据n from 表名 where 字段 比较,逻辑运算符 条件;
例如 select * from student where score>90;
select * from student where score>60 and score<=90;
模糊查询
LIKE
占位符 1. _:单个任意字符
2.% :多个任意字符
例如查询两个字的名字且姓名为朱的数据
select * from student where name like '朱_'
查询开头为朱的名字 后面多少字什么字无所谓
select * from student where name like '朱%'
查询名字中有凯的名字
select * from student where name like '%凯%'
3.U(Update)改表
修改表的名字
alter table 表名 rename to 新表名;
添加新的一列字段
添加到最后
alter table 表名 add 新列名 数据类型
添加到指定字段后
alter table 表名 add 新列名 数据类型 after 字段名
添加到最开始的一列
alter table 表名 add 新列名 数据类型 first
删除字段
alter table 表名 drop 列名
修改字段信息
改名字,且改数据类型:
alter table 表名 change 要修改的列名 修改后的名称 修改后的数据类型
只改类型:
alter table 表名 modify 要修改的目标列名 修改后的数据类型
添加数据
insert into 表名 (列名1,列名2,...,列名n) values(数值1,数值2,数值3,..,数值n)
也可以省略列名不过需要写所有的values
insert into 表名 values(数值1,数值2,数值3,..,数值n)
修改字段数据
update 表名 set 列名1 =数据1 ,列名2=数据2,... where 条件
例如 update student set score =100 where name ='张三'
4.D(Delete)删表
删表
直接删表
drop table 表名
只是删除表中的数据 表依旧存在
truncate table 表名
delete table 表名(这是一条一条删除 ,效率很低不建议使用)
删表里的数据
delete from 表名 where 条件
例如 delete from student where name='张三';
简短的记录一下,有很多需要完善,加油