jgugugiug 发表于 2018-10-6 13:24:45

mysql数据库基本操作(表结构)

  装包启服务后会自动生成相关的配置文件
  首次运行时会自动生成 root 初始秘密
  初始密码在服务日志文件中查找grep -i password /var/log/mysql.log
  进去mysql
  mysql -hlocalhost -uroot -p初始密码
  set global validate_password_policy=0;
  #修改密码默认等级为0
  #0为长度 , 1为字母长度符号,2为字母长度符号,字典文件
  set global validate_password_length=6;
  #修改密码默认长度要求为6

  alter user root@"localhost">  #修改密码
  命令行指令为临时有效,将命令写入配置文件/etc/my.cnf永久生效
  写入完成后重启服务即可生效
  ################################################################
  名词解释
  DB,DataBase
  数据库,依照某种数据模型进行组织并存放到存储器的数据集合
  DBMS,DataBase Management System
  数据库管理系统,用来操作和管理数据库的大型服务器软件
  DBS, DataBase System
  带有数据库,数据库管理系统的服务器
  ##################################################################
  sql命令的分类
  DDL 数据定义语言

  (create>  DML 数据操作语言
  (insert update delete)
  DCL 数据控制语言
  (grant revoke)
  DTL 数据事物语言
  (commit rollback savepoint)
  ###################################################################
  2创建库
  create database 库名;
  #创建库
  show databases;
  #查看已有库
  drop database 库名;
  #删除库
  select database();
  #查看当前所在的库
  use 库名;
  #进入库
  ##################################################################
  建表
  create table 库名.表名(
  字段名 类型(宽度) 约束条件,
  字段名 类型(宽度) 约束条件,
  ...
  ...
  );
  create   table   gamedb.stu(
  name    char(10), #字符(10)个
  age   int #数值
  );
  insert into 库名.表名 values(值列表);
  #插入表记录
  select * from库名.表名;
  #查看表记录
  delete from 库名.表名;
  #删除表记录
  desc 库名.表名;
  #查看表结构
  drop table 库名.表名;
  #删除表
  ##################################################################
  mysql数据类型
  数值型:整形、浮点型
  整型:根据存储数值的范围整型类型的又分为:
  类型 tinyint smallintmediumintintbigint
  用途微小         小                      中                     大            特大
  大小 1字节      2字节               3字节                  4字节         8字节
  分为有符号无符号,范围分别为:
  有符号 -128~27   -32768~2767    -2^23~2^23-1   -2^31~2^31-1-2^63~2^63-1
  无符号    0~255      0~65535             0~2^24-1             0~2^32-1      0~2^64-1
  创建时使用 unsigned 修饰时,对应的字段只保存正数
  宽度仅是显示宽度,存储数值的大小由类型决定
  使用 zerofill 时,填0代替空格补位
  #例如: age int(3)
  

insert in to a values(3)  

  数据库显示为 003
  

  数值超出范围时,报错
  浮点型:根据存储的范围分为单精度和双精度:
  单精度 float(n,m)4字节
  双精度 double(n,m)8字节
  #n表示总位数,m表示小数位的位数
  #例如:float(5,2) 最大为999.99最小为-999.99
  数值类型的宽度是显示宽度不能够限制给字段的赋值的大小,大小由字段类型决定。
  ################################################################
  字符型:
  定长: char(字符数)
  #最大长度255字符,不够指定字符数时在右边用空格补齐,字符数断超出时,无法写入数据。
  变长:varchar
  #按数据实际大小分配存储空间,字符数断超出时,无法写入数据。
  大文本类型:text/blob
  #字符数大于65535存储时使用。
  实际生产环境中使用 char 的会相对较多,因为 varchar 会占用一部分CPU资源来计算存储大小。
  日期时间型
  年 year YYYY 2017
  #year默认用4为数字表示,当只用2位数字赋值时,01~69视为2000~2069
  

70~99时为1970~1999  

  日期 date YYYYMMDD20171220
  时间 time HHMMSS155145
  日期时间
  datetime YYYYMMDDHHMMSS
  timestamp YYYYMMDDHHMMSS
  datetime 当没有为他赋值时,会显示为空
  timestamp 当没有为他赋值时,会使用系统当前时间
  ###################################################################
  now()
  #当前系统的时间
  year()
  #获取数据中的年
  day()
  #获取数据中的天
  date()
  #获取数据中的日期
  time()
  #获取数据中的时间
  ###################################################################
  枚举类型:字段的值只能在列举的范围内选择
  字段名 enum(值列表)
  #单选,从给定值集合中选择单个值。
  字段名 set(值列表)
  #多选,从给定值集合中选择一个或多个值。
  ###################################################################
  设置字段的约束条件:作用限制如何给字段赋值。
  Null 是否允许为空 不允许则在类型后面跟NOT Null
  Default 设置默认值,缺省为NULL 类型后面跟default
  ###################################################################
  修改表结构

  mysql>>  add 字段名 类型(宽度) 约束条件,
  #添加新字段,默认在最后。
  add 字段名 类型(宽度) 约束条件 first;
  #所有字段的前面
  add 字段名 类型(宽度) 约束条件 after 字段名;
  #在什么字段后面添加
  drop 字段名;
  #删除字段
  modify 字段 类型(宽度) 约束条件
  #修改字段类型
  change 原字段名 新字段名 类型(宽度) 约束条件
  #修改字段名
  alter table 原表名 rename 新表名;
  #修改表名


页: [1]
查看完整版本: mysql数据库基本操作(表结构)