基本操作方法
创建数据库:
1.CREATE DATABASE [IF NOT EXISTS] db_name
IF NOT EXISTS 如果不加,当要创建的数据库存在时就会报错
2.设置两个参数
[DEFAULT] CHARACTER SET charset_name
[DEFAULT]COLLATE collation_name
CHARACTER SET:指定数据库采用的字符集,如果不指定字符,默认utf-8
COLLATE:指定数据库字符集的校对规则(常用的 utf8_bin【区分大小写】,utf_general_ci【不区分大小写】 注意默认是utf8_general_ci)
删除数据库:
DROP DATABASE [IF EXISTS] db_name;
查看数据库有哪些
SHOW DATABASES
显示数据库创建语句:
SHOW CREATE DATABASE db_name
在创建数据库,表的时候,为了规避关键字,可以用反引号(1的左边)解决
备份和恢复数据库(暂时未学)
创建表:
CREATE TABLE table_name(
field1 datatype,
field2 datatupe
)character set 字符集 collate 校对规则 engine 引擎
filed:指定列名
datatype:指定列类型(字段类型)
character set:如不指定则为所在数据库字符集
collate:如不指定则为所在数据库校对规则
engin:(后面学)
修改表:
添加列:
ALTER TABLE tablename
ADD (column datatype [DEFAULT expr]
[,column datatype]…);
修改列
ALTER TABLE tablename
MODIFY (column datatype [DEFAULT expr]
[,column datatype]…);
如果想在一个已经建好的表中添加一列,可以用以下代码:
alter table 表名 add column 列名 varchar(20) not null;
这条语句会向已有的表中加入一列,这一列在表的最后一列位置。如果我们希望添加在指定的一列,可以用:
alter table 表名 add column 列名 varchar(20) not null after user1;
注意,上面这个命令的意思是说添加addr列到user1这一列后面。如果想添加到第一列的话,可以用:
alter table 表名 add column 列名 varchar(20) not null first;
将表yusheng中,列名def改为unit
alter table yusheng change def unit char;
将表yusheng中,列名def的列删除
alter table yusheng drop column def ;
删除列:
ALTER TABLE tablename
DROP (column);
查看表结构:desc 表名;–可以查看表所有的列
修改表名:Rename table 表名 to 新表名
修改表字符集:alter table 表名 character set 字符集;
Mysql数据类型(专指列类型/字段类型)
常用数据类型
1.数值类型
整型:tinyint[1字节] smallint[2个字节]mediumint[3个字节] int[4个字节] bigint[8个字节]
如果没有指定 unsinged,则为有符号数据
小数类型:float[单精度 4个字节] double[双精度 8个字节decimal[M(长度),D(小数点精确到多少位)] [大小不确定]
M最大为65,D最大为30,如果D被省略默认是0,就是没有小数位数
2.文本,字符串类型
char 0-255
varchar0-65535[0~2^16-1]
text 0~2^16-1
longtext 0~2^32-1
3.二进制类型
blob[0~2^16-1]
longblob[]0~2^32-1]
4.日期类型
data 【年月日】
time 【时分秒】
datetime【年月日 时分秒】 [YYYY-MM-DD hh:mm:ss]
timestamp[时间戳]
数据库C,R,U,D语句
1.Insert 添加数据
INSERT INTO table_name[(column[,column…])]
VALUES (value[,]value…)
insert into t1
-> values(123,'欧阳');
2.Update 更新数据
UPDATE tbl_name
SET col_name1=expr1[,col_name2=expr2…]
[WHERE where_definition]
如果没有where则会修改所有的记录
3.Delete 删除数据
delete from tb1_name
[WHERE where_definition]
4.Select 查找数据
单表:
SELECT [DISTINCT] *|{column1,column2,column3…}
FROM tablename;
使用表达式对查询的列进行运算
SELECT *|{column1 | expression, column2 | expression,…}
FROM table_name;
在selec语句中可以使用as语句
SELECT columnname as 别名 from 表名;
运算符
使用Order by 子句排序查询结果
SELECT column1,column2,column3…
FROM table;
order by column asc|desc…
1 ORDER BY 指定排序的列,排序的列既可以是表中的列名,也可以是select语句后指定的列明
2 ASC升序默认,DESC降序
3 ORDER BY 子句应位于SELECT语句的结尾
统计函数 count
Count 返回行的总数
select count(*)|count(列名) from tablename
[WHERE where_definition]
count(*) 和count(列的区别)
count(*)返回满足条件的记录的行数
count(列):统计满足条件的某列有多少个,但是会排除为空的情况
合计函数 sum
Sum函数返回满足where条件的行的和 一般使用在数值列
select sum(列名){,sum(列名)…}from tablename
[WHERE where_definition]
AVG(平均分)
MAX,MIN
分组统计
使用group by 子句对列进行分组
SELECT column1,column2,column3…FROM table
group by coumn
使用having 子句对分组后的结果进行过滤
SELECT column1,column2,column3…
FROM table
group by column having…