kingforce 发表于 2018-10-9 11:37:41

Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用

  MySQL 存储引擎,也被称为表类型:
  MyISAM表:无事务处理功能,支持表锁
  .frm:表结构定义文件
  .MYD:表数据文件
  .MYI:表索引文件
  InnoDB表:支持事务处理功能,支持行锁
  .frm:表结构定义文件
  .ibd:表空间(包含数据和索引文件)
  MySQL常用的查询命令:
  SHOW ENGINES;#查看数据库支持的引擎及状态。
  SHOW TABLE STATUS LIKE 'user' \G#查看表user的属性信息,\G竖排显示
  mysqld --help --verbose#查看mysql支持的各种相关指令
  SHOW CHARACTER SET;    #显示所有支持的字符集
  SHOW COLLATION ;      #显示各个字符集下的排序规则
  程序语言连接数据的方式:
  动态SQL:通过函数或方法与数据库服务建立连接,
  嵌入式SQL:
  MySQL工具:
  客户端工具:mysql(登录工具),mysqladmin(管理工具),mysqldump(备份工具),mysqlimport,mysqlcheck
  服务器端工具:mysqld(启动进程),mysqld_safe(安全线程),mysqld_multi(支持多实例)
  MySQL配置文件:my.cnf
  配置文件启动顺序为,/etc/my.cnf -->/etc/mysql/my.cnf -->$MYSQL_HOME/my.cnf -->
  --default-extra-file=/path/to/somefile -->~/.my.cnf
  MySQL启动失败的原因大致有:
  1、此前mysql服务未关闭
  2、数据初始化失败
  3、数据目录位置错误
  4、数据目录权限问题
  DBA的工作内容:
  开发DBA:数据库设计,SQL语句,存储过程,存储函数,触发器
  管理DBA:安装,升级,备份,恢复,用户管理,权限管理,监控,性能分析,基准测试
  MySQL数据类型:
  数值型:
  精确数值型:int(整数型) decimal(十进制型)
  近似数值型:float(单精度浮点型) double(双精度浮点型) real(实数型)
  字符型:
  定长字符型:CHAR(NUM),BINARY(区分大小写)最长不超过255个字符
  变长字符型:VARCHAR(NUM),VARBINARY(区分大小写) 最长不超过65535
  ENUM枚举型:ENUM('A','BB','CC','DD')用户只能在列举中选择一个
  SET枚举字符串型
  日期时间型:
  date日期,time时间,datetime日期时间,timestamp时间戳,year年
  数据类型需具备以下几点:
  1、存入的值类型
  2、占据的存储空间
  3、是变长还是定长
  4、如何比较及排序
  5、是否能够索引
  AUTO_INCREMENT 自动增长类型,需满足几点:必须为整型,非空,元符号,主键或唯一键
  Usage: CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,Name CHAR(20))
  创建一个test表,包含2个字段ID和Name,ID字段的修饰符必须是INT(整型),UNSIGNED(无符号的)
  AUTO_INCREMENT(自动增长),NOT NULL(非空的),PRIMARY KEY(主键)。
  Name字段类型为CHAR(20)(定长字符型长度为20).
  mysql> SELECT LAST_INSERT_ID();
  MySQL服务器变量:
   按作用域,分两类:
  全局变量
  SHOW GLOBAL VARIABLES LIKE ' '; 查看全局变量
  会话变量
  SHOW VARIABLES LIKE ' '; 查看会话变量
  按生效时间,分两类:
  可动态调整的变量:可即时修改
  静态变量:
  写在配置文件中,通过参数传递给mysqld
  动态调整参数的生效方式:
  全局变量:对当前会话无效,只对新建立会话有效;
  会话变量:即时生效,但只对当前会话有效;
  服务器变量:@@变量名
  显示:SELECT
  设定:SET GLOBAL|SESSION 变量名='value'
  mysql> SET GLOBAL sql_mode='strict_all_tables'; #设定sql_mode的值为strict_all_tables
  Query OK, 0 rows affected (0.00 sec)
  mysql> SELECT @@global.sql_mode;#查看sql_mode的全局变量
  +-------------------+
  | @@global.sql_mode |
  +-------------------+
  | STRICT_ALL_TABLES |
  +-------------------+
  1 row in set (0.00 sec)
  mysql> SELECT @@sql_mode;#查看sql_mode的会话变量
  +------------+
  | @@sql_mode |
  +------------+
  |            |
  +------------+
  1 row in set (0.00 sec)

页: [1]
查看完整版本: Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用