新建数据库
create database dbname; 新建数据库
create database if not exists dbname; 如果不存在新建数据库
create database dbname character set utf8; 新建数据库指定编码格式utf8
show databases; 显示所有的数据库列表
show create database dbname; 显示数据库的格式
修改数据库:
alter database dbname character set utf8; 修改数据库字符集
删除数据库:
drop database dbname; 删除数据库
drop database if exists dbname; 如果数据库存在,删除数据库
切换数据库:
use dbname;
创建数据表:
create table tabname (
num char(8) not null,
name varchar(20) not null,
gender char(2) not null,
age int not null,
tel char(11) not null unique,
qq varchar(11)
);
not null 必须有值
unique 同列的值不能相同
show tables; 查询表链表
desc tabname; 查看表结构
drop table tabname; 删除数据表
drop table if exists tabname; 如果数据表存在,删除数据表
修改数据表:
alter table tabname rename to newtabname; 修改表名
alter table tabname character set utf8; 修改表的字符集
alter table tabname add stu_remark varchar(200); 添加新列 stu_remark 类型varchar(200)
alter table tabname change qq weixin int; 修改字段的列表和类型 把qq 改为weixin 类型为 int
alter table tabname modify qq varchar(200); 修改字段的类型 修改qq的varchar(11)->varchar(200)
alter table tabname drop qq; 删除qq列
数据类型:数据表中列支持的数据类型
数值类型: 字节 范围 无符号范围
tinyint 1byte -128~127 0~255
smallint 2byte -32768~32767 0~65535
mediumint 3byte -8388608 ~ 8388607 0 ~ 16777215
int/integer 4byte -2147483648 ~ 2147483647 0 ~ 4294967296
bigint 8byte -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615
float 4byte
double 8byte
decimal decimal(10,2) 表示数值一共有10位,小数位2位
字符串类型:
数值类型: 字节 说明
char 0-255 char(n) 定长字符串长度为n,不满补0
varchar 0-65535 varchar 可变字符串长度
tinyblob 0-255 存储二进制字符串
blob 0-65535 存储二进制字符串
mediumblob 0-1677215 存储二进制字符串
longblob 0-4294967295 存储二进制字符串
tinytext 0-255 文本数据
text 0-65535 文本数据
mediumtext 0-1677215 文本数据
longtext 0-4294967295 文本数据
日期类型:
数值类型: 格式 说明
date 2022-04-10 年月日
time 11:11:11 时分秒
year 2022 年
datetime 2022-04-10 11:11:11年月日时分秒
timestamp 20220410111111 日期加时间(时间戳)
字段约束:
非空约束(not null):值不能为null
唯一约束(unique):此列的值不能重复
主键约束(primary key):非空+唯一
外键约束(foreign):建立不同表之间的关系
create table tabname (
num char(8) not null primary key ,
name varchar(20) not null,
gender char(2) not null,
age int not null auto_increment,
tel char(11) not null unique,
qq varchar(11)
);
添加主键操作 设置num为主键
alter table tabname modify num char(8) primary key;
删除主键约束:
alter table tabname drop primary key;
自动增长:(不保证连续性)
auto_increment;
联合主键:primary key (num,course_id)
create table tabname (
num char(8) ,
course_id int,
score int,
primary key (num,course_id)
);
插入指定列数据:
insert into tabname(columnName,columnName……) values(value1,value2……)
所有列插入数据时:(不建议使用省略,增强代码的可读性)
insert into tabname values(value1,value2……)
删除数据:
delete from tabname; 删除表内所以数据
delete from tabname where columnName=value; 删除列columnName的值是value的行
delete from tabname where columnName>value; 删除列columnName的值大于value的行
修改数据:
update tabname set columnName=newValue; 修改所有columnName列所有的值为newValue
update tabname set columnName=newValue where columnName=oldValue; 修改columnName=oldValue的值为newValue
update tabname set columnName1=newValue1,columnName2=newValue2 where columnName=oldValue; 修改多列的值
查询数据:
select * from tabname; 查询所有数据
select columnName1,columnName2…… from tabname; 查询指定列所有值
select * from tabname where columnName=value; 查询指定列值等于value的行的值
select * from tabname where columnName!=value; 查询指定列值不等于value的行的值
select * from tabname where columnName>value; 查询指定列值大于value的行的值
select * from tabname where columnName<value; 查询指定列值小于value的行的值
select * from tabname where columnName<value or columnName2<value2; 多个条件满足一个
select * from tabname where columnName<value and columnName2<value2; 多个条件都需要满足
select * from tabname where columnName not between value1 and value2; 不是value1 and value2
select * from tabname where columnName like ‘reg’;
reg:%o% 字母中包含O的值 %表示任意多个字符
_o% 第二个字母中包含O的值 _表示任意一个字符
eg:select * from tabname where columnName like ‘%o%’;
select columnName1,columnName2…… from tabname; 查询的显示结果 columnName1 columnName2的值
select columnName1 as NewcolumnName1,columnName2…… from tabname; 显示结果columnName1名改为NewcolumnName1
select distinct NewcolumnName1 from tabname; 显示结果删除重复的值
排序 order by:
select * from tabname where columnName1<value order by columnName2 asc; 满足条件的结果按照升序排列
select * from tabname where columnName1<value order by columnName2 desc;满足条件的结果按照降序排列
select * from tabname where columnName1<value order by columnName2 desc,columnName3 desc;满足条件的结果按照columnName2降序排列并且按照columnName3降序排列
聚合函数:
count() 统计满足条件的指定列的值个数
select count(columnName) from tabname; 统计满足条件的columnName列的值个数
max() 获取到查询记录中满足条件列的最大值
select max(columnName) from tabname where columnName1<value; 统计满足条件的columnName列的最大值;
min() 获取到查询记录中满足条件列的最小值
select min(columnName) from tabname where columnName1<value; 统计满足条件的columnName列的最小值;
sum() 获取到查询记录中满足条件列的最小值
select sum(columnName) from tabname where columnName1<value; 统计满足条件的columnName列的值总和
avg()
select avg(columnName) from tabname where columnName1<value; 统计满足条件的columnName列的平均值