数据类型 : 数据类型指的是列.存储过程参数.表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型.有一些数据是要存储为数字的,数字当中有些是要存储为整数,小数,日期型等…
常见数据类型:
1.整数型
tinyint 1 小整数型
smallint 2 大整数型
mediumint 3 大整数型
int 4 大整数型
bigint 8 极大整数型
2.浮点型
float(m,d) 4 单精度浮点 m代表总个数,d代表小数位
double(m,d) 8 双精度浮点 m代表总个数,d代表小数位
3.定点型
decimal(m,d) 依赖于m和d的值 m代表总个数,d代表小数位
4.字符串类型
char 0-255 定长字符串
varchar 0-65535 变长字符串
tinytext 0-255 短文本字符串
text 0-65525 长文本数据
mediumtext 0-16777215 中等长度文本数据
longtext 0-4294967295 极大文本数据
5.时间型
date 3 yyy-mm-dd 存储日期值
time 3 HH:mm:ss 存储时分秒
year 1 yyyy 储存年
datetime 8 yyyy-MM-dd HH:mm:ss 储存日期加时间
timestamp 4 yyyy-MM-dd HH:mm:ss 储存日期加时间,可做时间戳
密码修改:
法一:命令行格式输入:mysql -u root -p回车进入mysql
输入:
mysql>set password =password(‘你的密码’);
mysql>flush privileges;
法二:
输入:mysqladmin -u root -p password回车
设置密码即可。
查看mysql服务进程 ps -ef | grep mysql
service服务管理: cp -a mysql.server /etc/rc.d/init.d/mysql
启动命令: service mysql start
关闭命令: service mysql stop
重新启动命令: service mysql restart
查看状态命令: service mysql status
查看所在库: select database();
查看所在库里有什么表:show tables;
查看表结构:desc 表名;
查看创建表sql语句:show create table 表名\G
\G:有结束sql语句的作用,还有把显示的数据纵向旋转90度(格式化)
\g:分号
create table 表名1 as select * from 表名2 :把表2所有数据复制到表1
create table 表名1 as select * from 表名2 where 1=2:把表2结构复制到表1
create table 表名1 like 表名2 ;
查看表的内容:select * from 表名;
删除表:drop table 表名;
登录管理: ln -s /usr/local/mysql/bin/* /bin
登录命令: mysql -u root -p
退出命令: exit;/quit;
默认端口号: 3306
配置文件: /etc/my.cnf
数据库 database
数据表 table
字段(列) column
行 row
DDL数据定义语言
(1)直接创建数据库 db1
create database db1;
(2)判断是否存在,如果不存在则创建数据库 db2
create database if not exists db2;
(3)创建数据库 db3 并指定字符集为 gbk
create database db3 default character set gbk;
(4)查看某个库是什么字符集
SHOW CREATTE DATABASE XD;
(5)查看当前mysql使用的字符集
show variables like ‘character%’;
(6)查看当前在哪个库
select database();
(7)使用库name
use name;
(8)删除库
drop database name;
(9)创建表:
CREATE TABLE 表名(
字段名1 字段类型1 约束条件1 说明1,
字段名2 字段类型2 约束条件2 说明2
);
(10)约束条件:
primary key ----不能重复,只能有一个作为标识
comment '内容' ---说明解释
not null ---不为空
default ---默认值(不插入数据的话默认是)
unsigned ---无符号(即正数)
auto_increment ---自增
zerofill ---自动填充
unique ---唯一值
(11)表结构的修改
1.修改表名
rename table 旧表名 to 新表名
2.添加列
给表添加一列:alter table 表名 add 列名 类型 约束条件;
在最前面添加一列:alter table 表名 add 列名 类型 约束条件 first;
给表某个字段后添加一列:alter table 表名 add 列名 类型 约束条件 after 字段名;
3.修改列类型
alter table 表名 modity 列名 新类型
4.修改列名
alter table 表名 change 旧列名 新列名 类型
5.删除列
alter table 表名 drop 列名
6.修改字符集
alter table 表名 character set 字符集
7.masql表的删除:drop table 表名
查看是否存在表,若存在则删除:drop table if exists 表名
DML数据操作语言
(1)数据增加
1.普通的插入数据
insert into 表名(字段名)(可省略) values (’’,’’,’’,’’)
2.蠕虫复制(将一张表的内容复制到另一张表)
insert into 表名2 select * from 表名1;
insert into 表名2(字段名1,字段名2) select 字段名1,字段名2 from 表名1;
3.建表复制
create table 表名1 as select 字段名1,字段名2 from 表2
4.一次性插入多个数据
insert into 表名(字段名) values (对应值1),(对应值2);
(2)数据修改以及删除
1.修改(更新):
update 表名 set 字段名1=‘值1’ where 字段名=值
update 表名 set 字段名1=‘值1’,字段名=‘值2’ where 字段名=值
2.删除:
delete from 表名 where 字段名=值;
truncate table 表名;(不会记录删除操作,会把表占用的空间恢复到最初,不会删除定义)
delete from 表名;(会把删除的操作记录起来,以便于数据回退,不会释放空间,并且不会删除定义)
drop table 表名;(删除整张表包括表名,释放所有空间)
删除速度:drop>truncate>delete
DQL数据查询语言
1.简单查询
select * from 表名
select 字段名1,字段名2 as 字段名二 from 表名
2.精确条件查询
select * from 表名 where 字段名=值----找出该字段名为这个值的数据
select * from 表名 where 字段名>值----找出该字段名大于这个值的数据
select * from 表名 where 字段名1=值1 and 字段名2=值2----多条件查询
3.模糊条件查询
show 表名 like ‘…%’;------找出前面是…的值,模糊匹配
4.范围查询
select * from 表名 where 字段名 between 值1 and 值2;—查出在这个范围内的数据
5.离散查询
select * from 表名 where 字段 in (‘值1’,‘值2’);—匹配
6.清除重复值
select distinct(字段) from 表名;----只保留不同的字段的值
7.统计查询(聚合函数)—select **** from 表名
count(值)或者count()—统计条数
sum(字段)—对数值的计算
max(字段)—最大值
select * from 表名 where 字段名=(select max(字段名) from 表名);
avg(字段)—平均值
min(字段)—最小值
8.数据连接显示
select concat(字段名1,‘是’,字段名2)from 表名;
9.group by --分组查询
(1)作用:把行按字段分组
(2)语法:group by 列1,列2,列n
(3)适用场合:常用于统计场合,一般和聚合函数连用
select 字段1,字段2,count() from 表名 group by 字段1,字段2;—统计该字段每个元素出现个数
10.having --条件查询(筛选)
(1)作用:对查询结果进行筛选操作
(2)语法:having 条件 或者 having 聚合函数 条件
(3)适用场合:一般跟在group by 之后
select 字段1,字段2,count() from 表名 group by 字段1,字段2 having 条件;
select 字段1,字段2,count() as 别名 from 表名 group by 字段1,字段2 having 条件;
11.order --排序查询(排序)
(1)作用:对查询结果进行排序操作
(2)语法:order by 字段1,字段2;(结尾加上desc是倒叙)
(3)适用场合:一般用在查询结果的排序
select 字段1,字段2,count(*) as 别名 from 表名 group by 字段1,字段2 having 条件 order by 字段1,字段2;
select * from 表名 order by 字段;
顺序:where---- group by ---- having ---- order by
12.limit --限制查询(限制)
(1)作用:对查询结果起到限制条数作用
(2)语法:limit n,m n:代表起始条数,默认为0;m:代表取出的条数
(3)适用场合:数据量过多时,可以起到限制作用
select * form 库名.表名 limit n,m;-----库名.表名–直接定位操作指定表
13.exists型子查询
简介:exists子查询后面是一个受限的select查询语句
exists子查询,如果exists后的内层查询能查出数据,则返回true表示存在;为空则返回flase表示不存在;用法分为两种:exists和not exists
select * from 表名 where exists(select 1 from 表名2 where 条件)
select * from type a where exists(select 1 from emptyee b where a.bumen=b.bumen)
DCL数据控制语言