mysql

学习MySQL

  1. 创建一个表

    • CREATE TABLE [IF NOT EXISTS] `表名称`(
      `字段名` 数据类型 字段属性 索引 注释,
      ......
      `字段名` 数据类型 字段属性 索引 注释
      )ENGINE=INNODB DEFAULT CHARSET=utf8
    •  

<font color ='red'></font>

  1. 三条代码

SHOW CREATE DATABASE school --查看创建数据库的语句
SHOW CREATE TABLE student -- 查看student数据表的定义语句
DESC student --显示表的结构
  1. 数据表的类型

    --关于数据库引擎
    /*
    INNODB 默认使用~
    MYISAM 早些年使用的
    */
     INNODBMYISAM
    事务支持 支持 不支持
    数据行锁定 支持 不支持
    外键约束 支持 不支持
    全文索引 不支持 支持
    表空间的大小 较大,约为2倍 较小

    常规使用操作:

    • MYISAM 节约空间,速度较快

    • INNODB 安全性高,事务的处理,多表多用户操作

在物理空间存在的位置

所有的数据库文件都存在data目录下

本质还是文件的存储!

MYSQL 引擎在物理文件上的区别

  • InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件

  • MYISAM对应文件

    • *.frm- 表结构的定义文件

    • *.MYD-数据文件(data)

    • *.MYI- 索引文件(index)

设置数据库表的字符集编码

1|CHARSET=utf8

不设置的话,会是mysql默认的字符级编码(不支持中文)

MySQL的默认编码是Lation1,不支持中文

2|character-set-server=utf8

在ini中添加上上面的代码(但是不建议使用这个,改变物理文件的额方法)

4. 修改删除表

修改

-- 修改表名 : ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
-- 增加表的字段 :ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age1 INT(12)

-- 修改表的字段 (重命名,修改约束!)
--ALTER TABLE 表名 MODIFY 字段名 列属性[]
ALTER TABLE teacher1 MODIFY age1 VARCHAR(11) --修改约束
--ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[](选写)
ALTER TABLE teacher1 CHANGE age1 age INT(1) --字段重命名(tips:change也可以修改约束)


--删除表的字段: ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1

 

删除

-- 删除表(如果表存在再删除)
DROP TABLE IF EXISTS teacher1

注意点:

  • 字段名使用``包裹

  • 注释 --/**/

  • sql关键字大小写不敏感,建议写小写

  • 所有的符号全部使用英文!

5.外键

#创建一个外键约束
-- student表中的gradeid字段(这个字段不可以是自增的属性),要去引用grade表中的gradeid字段
-- 需要先定义一个key
-- 然后给这个key一个约束CONSTRAINT KEY名 FOREIGN KEY (`字段名`) REFERENCES `表名`(`字段名`)
CREATE TABLE IF NOT EXISTS `student1` (
`id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(4) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`gradeid` INT(10) NOT NULL COMMENT '年纪号',

PRIMARY KEY(`id`),
KEY `FK_gradeid` (`gradeid`),
CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade`(`gradeid`)

)ENGINE=INNODB DEFAULT CHARSET=utf8
DROP TABLE IF EXISTS `student1`
CREATE TABLE `grade`(
`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT'年纪号',
`gradename` VARCHAR(10) NOT NULL COMMENT'年纪名称',
PRIMARY KEY(`gradeid`)
)ENGINE =INNODB DEFAULT CHARSET=utf8

-- 创建表的时候没有外键关系
ALTER TABLE `student1`
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`)
-- ALTER TABLE `表名` ADD CONSTRAINT 约束名 FOREIGN KEY(作为外键的列) REFENCES `表名`(`字段名`)

tips :1. 删除掉外键关系的表的时候,不能先删除被引用的表要先删除掉引用的表在进行被引用的表的删除。

  1. 以上的操作都是物理外键,数据库级别的外键,我们不建议使用。

 

最好的方法是:

  • 数据库就是单纯的表,只用来存数据,只有行(数据)和列(字段)

  • 我们想使用多表的数据,想使用外键(用程序去实现)

6.DML语言(重点)

DML语言:数据操作语言

  • Insert

  • updata

  • delete

6.1、添加

insert

语法:insert into 表名([字段1,字段2,字段3])values('值1',...),('值2',...),('值3',...)

注意事项:

1.  字段和字段之间要使用 英文逗号隔开
  1. 字段是可以省略的,但是后面的值必须要一一对应,不能少

  2. 可以同时插入多条数据,VALUES后面的值,需要使用,隔开即可VALUE(),(),....

6.2、 修改

 

 

6.3、 删除

 

 

posted on 2022-01-13 20:40  正在学习的小刘  阅读(26)  评论(0)    收藏  举报

导航