Mysql数据库-零基础学习2

 

Mysql数据库2

  1. 什么是SQL?
    1. SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。
  2. DML(Data Manipulation Language数据操作语言)
    1. 查询、插入、删除和修改数据库中的数据;
    2. SELECT、INSERT、 UPDATE 、DELETE等;
  3. DCL(Data Control Language数据控制语言)
    1. 用来控制存取许可、存取权限等;
    2. GRANT、REVOKE 等;
  4. DDL(Data Definition Language数据定义语言)
    1. 用来建立数据库、数据库对象和定义其列
    2. CREATE TABLE 、DROP TABLE、ALTER TABLE 等
  5. 功能函数
    1. 日期函数、数学函数、字符函数、系统函数等
  6. CHAR(size)
    1. 保存固定长度的字符串(可包含字母、数字以及特殊字符)。
    2. 在括号中指定字符串的长度。最多 255 个字符。
  7. VARCHAR(size)
    1. 保存可变长度的字符串(可包含字母、数字以及特殊字符)。
    2. 在括号中指定字符串的最大长度。最多 255 个字符。
    3. 注释:如果值的长度大于 255,则被转换为 TEXT 类型。
  8. TINYTEXT
    1. 存放最大长度为 255 个字符的字符串。
  9. TEXT
    1. 存放最大长度为 65,535 个字符的字符串。
  10. BLOB
    1. 用于 BLOBs (Binary Large OBjects)。
    2. 存放最多 65,535 字节的数据。
  11. MEDIUMTEXT
    1. 存放最大长度为 16,777,215 个字符的字符串。
  12. MEDIUMBLOB
    1. 用于 BLOBs (Binary Large OBjects)。
    2. 存放最多 16,777,215 字节的数据。
  13. LONGTEXT
    1. 存放最大长度为 4,294,967,295 个字符的字符串。
  14. LONGBLOB
    1. 用于 BLOBs (Binary Large OBjects)。
    2. 存放最多 4,294,967,295 字节的数据。
  15. ENUM(x,y,z,etc.)
  16. Number 类型:数据类型 描述
  17. TINYINT(size)
    1. -128 到 127 常规。
    2. 0 到 255 无符号*。在括号中规定最大位数。
  18. SMALLINT(size)
    1. -32768 到 32767 常规。
    2. 0 到 65535 无符号*。在括号中规定最大位数。
  19. MEDIUMINT(size)
    1. -8388608 到 8388607 普通。
    2. 0 to 16777215 无符号*。在括号中规定最大位数。
  20. INT(size)
    1. -2147483648 到 2147483647 常规。
    2. 0 到 4294967295 无符号*。
    3. 在括号中规定最大位数。
  21. BIGINT(size)
    1. -9223372036854775808 到 9223372036854775807 常规。
    2. 0 到 18446744073709551615 无符号*。在括号中规定最大位数。
  22. FLOAT(size,d)
    1. 带有浮动小数点的小数字。
    2. 在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
  23. DOUBLE(size,d)
    1. 带有浮动小数点的大数字。
    2. 在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
  24. DECIMAL(size,d)
    1. 作为字符串存储的 DOUBLE 类型,允许固定的小数点。
    2. 这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加 UNSIGNED 属性,那么范围将从 0 开始,而不是某个负数。
  25. Date 类型:数据类型 描述
  26. DATE()
    1. 日期。格式:YYYY-MM-DD  注释:支持的范围是从 '1000-01-01' 到 '9999-12-31'
  27. DATETIME()
    1. 日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS
    2. 注释:支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
  28. TIMESTAMP()
    1. 时间戳。TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS
    2. 注释:支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC
  29. TIME()
    1. 时间。格式:HH:MM:SS 注释:支持的范围是从 '-838:59:59' 到 '838:59:59'
  30. YEAR()
    1. 2 位或 4 位格式的年。
    2. 注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。
  31. 即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 Insert 或 Update 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。
  32. Decimal
    1. 用于财务数据,定点数。
  33. SQL常用语法:
  34. 创建数据库:
    1. Create database ‘数据库名’ character set utf8;
  35. 删除数据库
    1. Drop database ‘数据库名’;
    2. 建立一个表USER,其由四列组成,第一列属性为非空,并做为主键,并自增
    3. CREATE TABLE USER (
        ID INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
        NAME VARCHAR (20),
        PASSWORD VARCHAR (50),
        SEX VARCHAR (2)
      ) ;

       

  36. 删除一个表:
    1. Drop table user;
  37. PRIMARY  KEY
    1. 主码约束(主键)
  38. UNIQUE
    1. 唯一性约束
  39. NOT  NULL
    1. 非空值约束
  40. AUTO_INCREMENT
    1. 用于整数列默认自增1
  41. UNSIGNED
    1. 无符号整数
  42. DEFAULT default_value
    1. 默认值约束
  43. DEFAULT cur_timestamp
    1. 创建新记录时默认保存当前时间(仅适用timestamp数据列)
  44. ON UPDATE cur_timestamp
    1. 修改记录时默认保存当前时间(仅适用timestamp数据列)
  45. CHARACTER SET name
    1. 指定字符集(仅适用字符串)
  46. 主键与外键
    1. 数据表之间的关联/引用关系是依靠具体的主键(primary key)和外键(foreign key)建立起来的。
    2. 主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来。
      • 主键必须是唯一的
      • 主键应该是紧凑的,因此整数类型比较适合
    3. 外键:引用另外一个数据表的某条记录。
      • 外键列类型尽可能与主键列类型保持一致
      • 外键列应该加上NOT NULL
  47. 主表和从表
    1. -- 创建一个学生表
      create table student(
      	sid int not null auto_increment,
      	name varchar(20) not null,
      	primary key(sid)
      );
      -- 分数表
      create table score(
      	cid int not null auto_increment primary key,
      	score int,
      	sid int,
      	foreign key(sid) references student(sid)
      );

       

  48. 主表和从表明细
    1. 当主表中没有对应的记录时,不能将记录添加到子表
      • 成绩表中不能出现在学员信息表中不存在的学号;
    2. 不能更改主表中的值而导致子表中的记录孤立
      • 把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;
    3. 子表存在与主表对应的记录,不能从主表中删除该行
      • 不能把有成绩的学员删除了
    4. 删除主表前,先删子表
      • 先删学员成绩表、后删除学员信息表
  49. 最少性
    1. 尽量选择单个键作为主键
  50. 稳定性
    1. 尽量选择数值更新少的列作为主键

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章