Mysql数据库基础知识-下
数据库的定义语言DDL
- 对数据库进行增,删,改,查操作
- 注意:所有sql命令推荐使用大写
- 创建数据库
- CREATE DATABASE 库名;
- CREATE DATABASE IF NOT EXISTS 库名;
- 查看当前mysql数据库中所有的 库;
- SHOW DATABASES;
- 删除数据库
- DROP DATABASE 库名;
- 修改数据库
- 没有修改数据库名的命令
- 注意:可以修改数据库名,但是只能修改myisam引擎的数据库,进入目录到mysql->data 修改对应数据库的目录名称
- myisam引擎 做快速存储
- Innodb引擎 带有事务回滚
mysql数据库中的数据类型
- 整型
- 浮点型

- float 单精度类型
- double(m,d) 双精度浮点型 3.1415
- m 有多少个数(总长度)
- d 小数点后面保留多少位
- decimal(m,d) 字符串类型的浮点数 '3.14' 金融数据一般使用该类型.他不是一个数,而是属于字符串
- 字符串类型
mysql操作
- 选择数据库
- use 库名;
- 对数据库表进行操作 增,删,改,查
- 查看当前数据库中的所有表
- SHOW DATABASES;
- 创建表
- CREATE TABLE 表名 (
字段名1,字段类型 [列的完整性约束],
字段名2,字段类型[列的完整性约束]
) ENGINE=MYISAM DEFAULT CHARSET=UTF8; - ENGINE 指定表引擎
- DEFAULT CHARSET 指定字符集 UTF8字符集
- 常用的列的完整性约束
- 主键: primary key
- 自增:AUTO_INCREMENT
- 默认值: DEFAULT ‘值’
- 不为空 :NOT NULL
- 为空: NULL
- 无符号:UNSIGNED
- 例子:
- 修改表
- ALTER TABLE 原表名 RENAME 新表名;
- 备份表
- CREATE TABLE 新表名 SELECT * FROM 原表名;
- 注意:该备份能备份所有的表结构以及数据,但是唯一不能备份过来的就是主键和自增以及字符集
- 删除表
- DROP TABLE 表名;
- DROP TABLE IF EXISTS 表名;
- DROP TABEL 表名1,表名2...;
- 查看表结构
- DESC 表名;
- Field 表示字段名
- Type表示数据类型以及对数据设置是否有符号
- Null 表示该字段是否设置为null
- Key 设置索引 pri主键索引
- Default 表示该字段的默认值
- Extra 表示额外的信息 AUTO_INCREMENT 自增
- 查看建表语句
- SHOW CREATE TABLE 表名\G;
- 对字段的操作:增\删\改\查
- 添加字段
- ALTER TABLE 表名 ADD 字段名 字段类型[完整性约束]
- 在两个字段间添加字段
- ALTER TABLE 表名 ADD 字段名 字段类型[完整性约束] [(AFTER 字段名)|FIRST]
- 修改字段
- 修改字段属性
- ALTER TABLE 表名 MODIFY 字段名 新字段类型[新列的完整性约束]
- 修改字段名字
- ALTER TABLE 表名 CHANGE 原字段名 新字段名 新字段类型[新列的完整性约束]
- MODIFY 和 CHANGE区别
- MODIFY 只能更改原字段的字段类型以及列的完整性约束
- CHANGE 可以更改字段名以及字段类型和列的完整性约束
- 删除字段
- ALTER TABLE 表名 DROP 字段名,DROP 字段名,DROP 字段名
CREATE TABLE user(
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> username VARCHAR(18) NOT NULL,
-> pwd CHAR(32) NOT NULL,
-> sex TINYINT UNSIGNED NOT NULL DEFAULT 0,
-> age TINYINT UNSIGNED NOT NULL,
-> phone CHAR(11) NOT NULL,
-> hobby VARCHAR(255) NOT NULL,
-> address VARCHAR(255) NOT NULL,
-> addtime INT UNSIGNED NOT NULL)ENGINE=MYISAM DEFAULT CHARSET=UTF8;
MYSQL数据库中的运算符和数据函数
- BETWEEN 值1 AND 值2 (存在于指定范围内)
- IN() 存在指定集合
- REGEXP 正则匹配
- LIKE 通配符匹配
- NOT 非
- AND 与
- OR 或
- XOR 逻辑异或
- 注意:在mysql数据库中所有的运算符推荐使用英文,并且尽量不要使用运算符操作
- ---------------------------------------------------------------------
- DATABASE()查看当前所在的库
- MD5()数据加密
- COUNT统计数据的长度
- SUM()累加和运算
- CONCAT()将几个字段链接成一个字段
添加数据
- INSERT INTO 表名(`字段名1`,`字段名2`,......) VALUES('值1','值2')
- 注意:字段名中出现的符号是反引号,作用是为了防止关键字报错
- INSERT INTO 表名 VALUES(‘值1’,‘值2’,‘值3’)
- 注意:所有的字段必须一招顺序一一对应赋值,不写值的可以写成null
- INSERT INTO 表名(`字段名1`,`字段名2`,......) VALUES('值1','值2',...),('值1','值2',...)
- INSERT INTO 表名 VALUES(‘值1’,‘值2’,‘值3’,....),(‘值1’,‘值2’,‘值3’,....)
删除数据
- DELETE FROM 表名;
- DELETE FROM 表名 WHERE 删除条件;
更新数据
- UPDATE 表名 SET 要更改的字段;
- UPDATE 表名 SET 要更改的字段 WHERE 更新条件;
查询数据
- SELECT * FROM 表名 [查询条件]
- SELECT 使用逗号分隔写入所有字段名称 FROM 表名 [查询条件];
- 查询条件
- NOT IN()
- LIKE 模糊匹配
- 格式:字段 LIKE ‘%内容%’;
- 排序查询
- ORDER BY 字段 ASC (按照字段正序排序)
- ORDER BY 字段 DESC(按照字段倒序排序)
- 限制查询的数量 LIMIT
- SELECT 字段 FROM 表名 LIMIT 查询数量;
- SELECT 字段 FROM 表名 LIMIT 跳过几条,查询几条;
分组查询 GROUP BY
- GROUP BY 字段名
查询条件使用顺序
- SELECT 语句 [WHERE条件][GROUP BY条件][HAVING条件][order by 条件][limit条件]
数据库的导出命令
- MYSQLDUMP [-h localhost] -u root -p密码库名 [表名] > 导出的文件
- 注意:导入和导出的命令后面不要给命令执行符,否则会报错,对于导入和导出箭头(<或者>)后面给的文件名都是当前路径
- C:\>MYSQLDUMP -h localhost -u root -p jkxy > sqlAll.sql
数据库的导入命令
- MYSQL [-h localhost] -u root -p 要导入的库名 < sql文件路径
- C:\>MYSQL -h localhost -u root -p myshop < sqlAll.sql
创建用户并且授权
- GRANT 权限 ON 数据库.[数据表] TO 用户名@登录主机地址 IDENTIFIED BY ‘密码’
- 比如:创建一个wangyun用户 让他对jkxy中gz表有查询权限
GRANT SELECT on jkxy.gz TO wangyun@localhost IDENTIFIED BY ‘123’ - GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 用户名@登录主机 IDENTIFIED BY ‘密码’
- 创建用户要求对所有的库以及所有的表有增、删、改、查权限,*.* 表示 所有库中的所有表
posted on 2018-06-21 18:09 nothingMan 阅读(147) 评论(0) 收藏 举报


浙公网安备 33010602011771号