day02-MySQL基础知识

打印 上一主题 下一主题

主题 855|帖子 855|积分 2565

MySQL基础知识

1.数据库

1.1.创建数据库

语法:
  1. CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[,create_specification]...]
  2. create_specification:
  3.    
  4.     [DEFAULT]CHARACTER SET charset_name
  5.     [DEFAULT]COLLATE collation_name
复制代码

  • CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认为utf8
  • COLLATE:指定数据库字符集的校对规则(常用的uft8_bin[区分大小写]、utf8_general_ci[不区分大小写] 默认是 utf8_general_ci)
练习:

  • 创建一个名为hsp_db01的数据库[图形和指令演示]
  • 创建一个utf8字符集的hsp_db02的数据库
  • 创建一个使用utf8字符集,并带校对队则的hsp_db03数据库
    指令创建:
  1. #演示数据库的操作
  2. #1. 创建一个名为hsp_db01的数据库
  3. CREATE DATABASE hsp_db01;
  4. #删除数据库指令
  5. DROP DATABASE hsp_db01;
  6. #2. 创建一个utf8字符集的hsp_db02的数据库
  7. CREATE DATABASE hsp_db02 CHARACTER SET utf8
  8. #3. 创建一个使用utf8字符集,并带校对队则的hsp_db03数据库
  9. CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin
  10. #校对规则 utf8_bin 区分大小写   默认utf8_general_ci 不区分大小写
复制代码
​    可以看见在不指定采用字符集和校验规则的情况下,字符集默认为utf8,校验规则默认为utf8_general_ci
关于字符集和校验规则:
如果在创建表的时候没有指定字符集和校验规则,则遵循和数据库一样的规则
如下:在数据库hsp_db02中创建表t1,t1设为默认字符集和校验规则。
在表t1中用select查询可以得到不区分大小写的两条数据:
在数据库hsp_03中创建同样的表t1并插入同样的数据,查询后只得到一条数据:
因为数据库hsp_03在创建时指定校验规则为utf8_bin,区分大小写,查询返回的数据也区分了大小写
数据库hsp_02没有指定大小写,返回的查询没有区分大小写
因此可知当表设置默认的字符集和校验规则时,其则遵循数据库的字符集和校验规则
1.2查看、删除数据库


  • 语法:
  1. #显示数据库语句
  2. #显示数据库创建时的语句
  3. #数据库删除语句[一定要慎用]
复制代码
练习

  • 查看当前服务器中的所有数据库
    1. SHOW DATABASES
    复制代码

  • 查看前面创建的hsp_02数据库的定义信息
    1. SHOW CREATE DATABASE hsp_db02
    复制代码

  • 删除前面创建的数据库


  • 关键字作名字创建数据库:

    • 说明1:数据库名用反引号括起来,是为了规避数据名字为关键字
    例如:创建一个名为create的数据库,不使用反引号就会报错

    使用了反引号之后,就可以成功创建数据库
    使用关键字创建,在删除的时候也要在名字旁边反引号


    • 说明2:后面的语句用/*!40100...*/ 说明版本要在4以上执行这条语句

1.3备份恢复

1.3.1备份恢复数据库


  • 语法:
备份数据库 (注意:在DOS执行)
  1. mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n > 文件名.sql
复制代码
恢复数据库(注意:进入MySQL命令行再执行)
  1. Source 文件名.sql
复制代码
练习:备份恢复数据库
备份hsp_db02和hsp_db03库中的数据,并恢复

  • 备份:
    如下,在Dos窗口下输入指令,指明备份的数据库和保存的文件名

在指定的路径下生成了对应的sql文件
这个备份的文件就是对应的sql语句:

  • 恢复
首先删除掉数据库hsp_db02和hsp_db03
登录账号,进入mysql命令行,输入指令 Source d:\\\bak.sql
可以看到数据库及里面的信息成功恢复:
1.3.2备份恢复数据库表


  • 语法:
备份数据库的表
  1. mysqldump -u 用户名 -p 数据库 表1 表2 表n > 文件名.sql
复制代码
(注意:在DOS执行)
恢复和数据库同理(注意进入mysql命令行执行)
2.表

2.1创建表


  • 语法:
  1. CREATE TABLE table_name
  2. (
  3.     field1 datatype,
  4.     field2 datatype,
  5.     field3 datatype
  6. )character set 字符集 collate 校对规则 engine 存储引擎
  7. # field:指定列名  datatype:指定列类型(字段类型)
  8. # character set:如不指定则为所在的数据库字符集
  9. # collate:如不指定则为所在的数据库的校验规则
  10. # engine:引擎(这个涉及较多,后面单独讲解)
复制代码
练习
在数据库hsp_db02创建一张表,根据需求的数据创建相应的列,并根据数据的类型定义相应的列类型
user表:
  1. id                  整形
  2. name                  字符串
  3. passwoed          字符串
  4. birthday         日期
复制代码
  1. #id                  整形
  2. #name                  字符串
  3. #passwoed          字符串
  4. #birthday         日期
  5. CREATE TABLE `user`(
  6.         id INT,
  7.         `name` VARCHAR(255),
  8.         `password` VARCHAR(255),
  9.         `birthday` DATE)
  10.         CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
复制代码
3.MySQL常用数据类型(列类型)



Mysql列类型即mysql的数据类型
详见MySQL的参考手册
3.1列类型之整型


  • 说明
数值型(整型)的基本使用
说明:使用规范:在能够满足需求的情况下尽量选择空间小的类型
应用实例


  • 3.1.2.1无符号TINYINT

  • 在数据库hsp_02中创建一个表t2,在表中插入列类型tinyint,列名为id
  1. CREATE TABLE t2(
  2. id TINYINT);
复制代码

  • 在表中插入数据 -129,执行后提示错误,可以看到t2为空表
   

  • 往表中插入数据-128,执行成功,表中成功插入数据


  • 同理,分别往表中插入数据128、127,只有127插入成功
    说明在有符号情况下,tinyint的范围为-128~127


  • 有符号TINYINT
在列类型后面指定无符号
  1. CREATE TABLE t3(
  2. id TINYINT UNSIGNED);
复制代码
  1. INSERT INTO t3 VALUES(-1);#错误,超出范围
  2. INSERT INTO t3 VALUES(0);
  3. INSERT INTO t3 VALUES(256);#错误,超出范围
  4. INSERT INTO t3 VALUES(255);
复制代码
3.2列类型之BIT


  • 说明

  • bit字段显示时,按照位的方式显示(按照指定位数的二进制显示)
  • 查询的时候仍然可以使用 添加时的数值(比如十进制)来查询
  • 如果一个值只有0,1,可以考虑使用bit(1),可以节省空间
  • 位类型。M指定位数,默认值1,范围1-64
练习
  1. #演示bit类型使用
  2. #说明
  3. #1.bit(M) M在1-64位
  4. #2.添加数据 的范围是按照你给定的M的位数来确定,例如M=8 表示一个字节(8bit) 0~255
  5. create table t5 (num bit(8));
  6. INSERT INTO t5 VALUES(5);
  7. insert into t5 values(3);
  8. select * from t5;
  9. #3.查询时仍然可以按照十进制数来查询
  10. select * from t5 where num = 5;
复制代码
3.3列类型之小数型


  • 说明

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

花瓣小跑

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表