chenqb 发表于 2018-10-7 06:21:29

MySQL数据库(一)

---MySQL数据库(3306)  DB Database
  --数据库:依照某种数据模型进行组织并存放到存储器的数据集合。
  DBMS Database Management System
  --数据库管理系统:用来操纵和管理数据库的大型服务软件。
  DBSDatabase System
  --数据库系统:指带有数据库并整合了数据库管理软件的计算机系统。
  常见的数据库服务软件
  关系型(RDBMS)按照规定的结果存储数据,并且数据之间可以做关联操作
  Oracle(甲骨文/商业软件) MySQL(甲骨文/开源跨平台) DB2(IBM) SQL Server(微软)
  非关系型数据库软件(NoSQL)KEY-VALUES(键值对)
  redismongodb
  #####################################3
  搭建MySQL数据库服务器
  (1)下载软件包
  /etc/my.cnf   //配置文件
  /var/lib/mysql   //数据库的存储目录
  (2)启动服务
  systemctl restart mysqld
  systemctl status mysqld
  netstat -lnptu | grep :3306    //查看端口
  ps -C mysqld               //查看进程
  grep password /var/log/mysql.log   //查看初始密码
  使用初始密码登录并重置登录密码
  mysql -hlocalhost -uroot -p'mima'
  mysql>show databases;    //使用初始密码登录 不能查看数据库内容
  :修改密码

  mysql>alter user root@localhost>  :密码不符合规定,可以通过修改规定从而设置密码
  mysql>set global validate_password_policy=0;//只验证长度
  mysql>set global validate_password_length=6;//修改密码长度 (默认为8个字符)

  mysql>alter user root@localhost>  修改密码成功
  mysql>quit or exit
  mysql -hlocalhost -uroot -p123456
  mysql>
  库管理命令
  .....>show databases;   //查看已有库
  create database gamedb;   //创建gamedb库
  drop database gamedb;    //删除gamedb库
  use gamedb ;             //切换到gamedb库里
  select database();      //查看当前在哪个库里
  表管理命令
  use gamedb;
  show tables;         //查看库里已有的表
  create table 表名(字段 类型(宽度)约束条件 ) //创建表
  #create table stuinfo(
  #>name char(10),
  #>age int);
  desc stuinfo             //查看表stuinfo结构
  drop table stuinfo      //删除表
  #insert into stuinfo values(//表中插入记录
  #>'tom',
  #>23);
  select * from stuinfo    //查看表中所有记录
  delect from stuinfo      //删除表中记录
  ######################################
  mysql数据类型
  数值类型:
  整型:根据存储数值的范围整型类型分为
  tinyint smallint mediunint int区分符号即 + -号后面加上 unsigned 变为无符号,即‘-’号无法输入
  浮点型:根据存储数值的范围分为单精度,双精度
  float(n,m) n表示共多少位m表示小数点位数
  double(n,m)
  字符类型:
  定长   char() 括号里面默认为1,最大为255,括号里面的表示宽度,不够指定字符数时在右边用空格补齐
  变长   varchar()最大为65532按照实际大小分配空间
  大文本 bolb/text字符大于65535存储时使用
  日期时间类型:
  年   year YYYY2017
  日期 date YYYYMMDD 20171220
  时间 time HHMMSS   080521
  日期时间
  datetime YYYYMMDDHHMMSS    默认为null
  timestamp YYYYMMDDHHMMSS   timestamp 默认为系统时间
  now()== datetime/timestamp
  year(now())取其中的年份
  date(now())取其中的日期
  time(now())取其中的时间
  mounth(now())取其中的月份
  day(now())   取其中的日
  枚举类型:字段的值只能在列举范围内选择
  字段名 enum(值列表)单选
  字段名 set(值列表)多选
  设置字段约束条件:限制如何给字段赋值
  null 默认为yes 即可以赋空值   not null 不可以赋空值
  默认为 null 可以设置默认为自定义default ‘自定义’
  #create table stuinfo(
  #>name char(10) not null,
  #>agetinyint   not null,
  #>high float(3,2) not null,
  #>sex enum('boy','girl') not null default 'boy',
  #>s_year year not null,
  #>shijian timenot null default time(now()),
  #>riqi datetimenot null default now(),
  #>likes set('book','film','game','sleep')
  #>);
  #desc styinfo;
  #insert into stuinfo values(
  #>'tom',
  #>23,
  #>1.82,
  #>'boy'/1,
  #>2017,
  #>205821/time(now()),
  #>20171220205821/now(),
  #>'book,game'
  #>);
  #select * from stuinfo;
  ############################################
  修改表字段
  (1)增加字段
  alter table styinfo add 字段名 类型(宽度)约束条件;
  alter table styinfo add 字段名 类型(宽度)约束条件 first; 默认增加在末尾,first 放在第一列
  alter table styinfo add 字段名 类型(宽度)约束条件 after 字段名; 放在某个字段后面
  (2)删除字段
  alter table stuinfo drop 字段名;
  (3)修改字段(类型,约束条件)//修改字段时,原表中如果有的数据与要修改字段类型冲突,则无法修改成功
  alter table stuinfo modify 字段名 新类型 新约束条件 ;
  (4)修改字段名
  alter table stuinfo change 字段名 新字段名 类型 约束条件;类型 约束条件不变
  (5)修改表名
  alter table stuinfo 表名 rename 新表名;

页: [1]
查看完整版本: MySQL数据库(一)