Mysql数据库基础知识-下

数据库的定义语言DDL

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

mysql数据库中的数据类型

  • 整型
    • image
    • tinyint 最小的数值整型
    • smallint 较小的整型
    • mediumint  小整形
    • int 标准的整型
    • bigint 大整形
  • 浮点型
    • image
    • float 单精度类型
    • double(m,d) 双精度浮点型 3.1415
      • m 有多少个数(总长度)
      • d 小数点后面保留多少位
    • decimal(m,d) 字符串类型的浮点数 '3.14' 金融数据一般使用该类型.他不是一个数,而是属于字符串
  • 字符串类型
    • image
    • char(m)定长字符串类型
      • 注意:m所指长度,在char类型中0~255之间的数
    • varchar(m)变长字符串类型
      • m 的值是0~65535
    • char()和varchar()区别:
      • 存储的长度不一样
      • char()如果存储的值不够括号中定义的长度,会占位到该括号中定义的长度
      • varchar()如果存入的值不够括号中定义的长度,会以实际存储的值长度为准
      • 按照效率分配
        • char是占用空间较大,但是查询效率高
        • varchar占用的空间较小,但是查询效率低
    • text 属于文本类型
      • 在网页中用于存储大文本,文章信息
    • blob类型是以二进制方式存储

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
      • 例子:
      • 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;

    • 修改表
      • 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 字段名


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)    收藏  举报