一、常用数据类型
类型
|
说明
|
int
|
整形(定义整数类型数据)
|
float
|
单精度浮点。4字节32位。准确到小数点后六位
|
double
|
双精度浮点。8字节64位
|
char
|
固定长度的字符类型,定义字符类数据,不足的空格补齐
|
varchar
|
可变长度的字符类型,
|
text
|
文本
|
image
|
图片
|
decimal(5,2)
|
5个有效长度数字,小数点后面有2位,指定长度数组
|
decimal (5,2),当输入的数值后的小数位小于两位时,会拿0补全两位;当超过两位时,小数点后第三位是自动进行的四舍五入进第二位
使用建议
1、在指定数据类型的时候一般是采用从小原则,比如能用TINY INT的最好就不用INT,能用FLOAT类型的就不用DOUBLE类型,这样会对MYSQL在运行效率上提高很大,尤其是大数据量测试条件下。
2、不需要把数据表设计的太过复杂,功能模块上区分或许对于后期的维护更为方便,慎重出现大杂烩数据表
3、数据表和字段的起名字也是一门学问
4、设计数据表结构之前请先想象一下是你的房间,或许结果会更加合理、高效
5、数据库的最后设计结果一定是效率和可扩展性的折中,偏向任何一方都是欠妥的
二、查看数据库结构
1、进入数据库
mysql -uroot -p123456
-u 连接数据库的用户名
-p 后面跟的是连接数据库的密码(不能有空格)
2,MySQL的常见命令
查看当前所有的数据库
show databases;
打开指定的库 use 库名;
查看当前库的所有表 show tables;
查看其它库的所有表 show tables from 库名;
创建表create table 表名(列名 列类型,列名 列类型,。。。);
查看表结构 desc 表名;
查看服务器的版本
方式一:登录到mysql服务端 select version();
方式二:没有登录到mysql服务端 mysql --version或mysql --V
3,MySQL的语法规范
1.不区分大小写,但建议关键字大写,表名、列名小写
2.每条命令最好用分号结尾
3.每条命令根据需要,可以进行缩进 或换行
4.注释
单行注释:#注释文字
单行注释:-- 注释文字
多行注释:/* 注释文字 */
二、Sql语句
SQL语言分类:
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等 create、drop、alter
DML:数据操纵语言,用于对表中的数据进行管理 insert 、update、delete
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录 select
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限 commit、rollback
数据库增删查改
创建数据库:语法:create database 数据库 [character 字符集 collate 校对规则]
查看数据库:
查看所有数据库:show databases;
查看某个数据库:show create database 数据库名;
修改数据库:语法:alter database 数据库名 character 字符集 collate 校对规则
删除数据库:语法:drop database 数据库名;
切换数据库:use 数据库名;
查看当前使用数据库:select database();
1、DDL语言
数据定义语言,用于创建数据库对象,如库、表、索引等 create、drop、alter
①库的管理
创建库 create database 库名;
删除库 drop database 库名;
②表的管理
CREATETABLE_表名(字段1 数据类型,字段2数据类型[,...] [,PRIMARY KEY(主键名)]);
主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
CREATE DATABASE school;
创建school数据库
USE school;
进入school数据库
CREATE TABLE ky17 (id int NOT NULL, name char(10) NOT NULL, score decimal(5,2),DEFAULT"",KEY( id));
创建ky17表,字段id 数据类型int不允许为空。字段name 数据类型char(10)固定长度为10位 不允许为空,字段score 数据类型decimal总共长度为5,小数点后2位,默认值为空,主键为id.
DESC ky17;
查看ky17表的数据类型
NOT NULL不允许为空值
DEFAULT’’默认值为空
PRIMARY KEY:主键一般选择没有重复并且不为空值的字段
③修改表
alter
语法:alter table 表名 ADD|MODIFY|DROP|CHANGE COLUMN 原字段名 新字段名【字段类型】;
①修改字段名
ALTER TABLE 表名 CHANGE COLUMN 原字段 新字段 数据类型;
#②修改表名
ALTER TABLE 原表名 RENAME [TO] 新表名;
#③修改字段类型和列级约束
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 ;
#④添加字段
ALTER TABLE 表名 ADD COLUMN 新字段 VARCHAR(20) first; first作为第一列
#⑤删除字段
ALTER TABLE 表名 DROP COLUMN 字段;
④删除表,库
删除指定的数据表
use数据库名
DROP TABLE school.表名 或者或者truncate table table_name;
DROP TABLE「数据库名.]表名;
#如不用USE进入库中,则需加上数据库名删除指定的数据库
2
、DML语言
数据操纵语言,用于对表中的数据进行管理
insert:插入新数据
update:更新原有数据
delete:删除不需要的数据
示例:
INSERT INTO ky11 (id, name , score , passwd) values(1, ' zhangsan',70
.5
,PASSWORD('123456'));
PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示:若不使用PASSWORD(),查询时以明文显示。密码复杂性验证
IN
S
ERT
I
NTO ky11 VALUES(2," lisi',90.5,654321) ;
SELECT *FROM
ky
11
:
查询表的数据记录
清空表,删除表内的所有数据
方法一
delete from 表名;
用DELETE清空表后,返回的结果内有删除的记录条目;
DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM删除所有记录后,再次新添加的记录会从原来最大的记录ID后面维续自增写入记录。
delete from 表名 不会删除表的结构
方法二:
truncate table 表名;
TRUNCATE清空表后,没有返回被删除的条日:TRUNCATE工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATETABLE清空表内数据后,
id会从1开始重新记录
小结:
手删除类型
drop table table_name1
属于DDL
不可回滚(无法恢复)
不可带where
花内容和结构删除
删除速度快
atruncate table table__name1
属于DDL
不可回滚
不可带where
表内容删除
PS: truncate操作过程是:先保留要删除的表的表结构,然后副除表,再重建这张表的表结构所以,例如lauto_increaent自增长的这种属性,会从头开始重新记录
刑除速度快
delete from table__name
属于DML
可回滚《可恢复》
可带where
表结构在,表内容要看where执行的情况《(执行更为麻烦)
删除速度慢,需要逐行删除
不再需要一张表的时候,用drop
想除部分数据行时候,用delete,并且带上where子句
保留表而删除所有数据的时候用truncate
速度
drop> truncate > delete
安全性delete最好
2,DQL语言查询数据记录——select
总结:
1、常用类型:int、char、varchar、decimal
2、常用操作
①、DDL负责数据结构定义与数据库对象定义
3、注意事项
修改数据库需谨慎
对数据库和表进行创建和删除时,需仔细确认当前的数据库位置,学会使用 [数据库名.]数据表
修改数据库时,使用 where 条件时,需要反复确认是否条件选择结果有重复项
学会使用 limit 来进行一些相关操作
知道什么试唯一键和主键
唯一键:唯一,但可以为空(空值只能出现一次)
主键:唯一,但不可为空值
主键包含唯一键的部分属性
唯一键不能完全作为主键