Mysql数据库常用语句和注意事项
创建数据库
创建一个test_4的数据库,指定其默认字符集为 utf8,默认校对规则为utf8_general_ci
CREATE DATABASE IF NOT EXISTS test_4
DEFAULT CHAR SET utf8
DEFAULT COLLATE utf8_general_ci;
创建数据库下的表
CREATE TABLE 表名
(
属性名1 数据类型 comment 别名,//列级声明主码 ,别名可加可不加
属性名2 数据类型 comment 别名,
primary key(属性名1,属性名2);//表级声明主码
foreign key(以上的某一属性名) references 某表(某表的主键)
);
注意:
<1 单属性做主码可在列级上定义也可以在表级上做定义,复合属性做主码必须在表级上做定义。
<2 创建表可以标明主键也可以不注明主键
<3 如果要重复创建表 ,可以先判断表是否存在,如
DROP TABLE IF EXISTS 表名;
create table 表名(~~)
<4 注意逗号和分号,创建表的最后一行不加逗号,其余行皆有逗号,判断表是否存在在创建表时实际上是两个操作,故先判断表是否存在后面得加分号如上 <3
比如在老师与选课信息表中:
DROP TABLE IF EXISTS teach_course;
CREATE TABLE teach_course
(
teachno CHAR(12) ,
courseno CHAR(6),
teachtime datetime,
PRIMARY KEY(teachno,teachtime),
FOREIGN KEY (teachno) REFERENCES teacher(teachno),
FOREIGN KEY (courseno) REFERENCES course(courseno)
);
插入数据语句:
向n列插入一组数据
insert into table(列名1,列名2,列名3,) values(值1,值2,值3);
向n列插入多组数据
//向xx列插入多组数据,如插入三组数据
insert into table(列名1,列名2,列名3,) values
(值1,值2,值3),
(值1,值2,值3),
(值1,值2,值3);
插入表中全部字段,则省略表后列名
insert into table values {所有列名对应的值};
注意:
插入语句value后面的值一定得和列属性对应,数据类型相同。
更新语句
用于更新某一列的值
update 表名 set 列名=更新后列名的新值 where (查找被更新的元组,如列名=某值)
删除语句
用于删除表中的某一行,也就是某一元组
DELETE FROM 表名称 WHERE 列名称 = 值
注意:
插入(insert),删除(delete),改(update)操作属于更改表的结构故要遵循实体完整性(唯一主键),参照完整性(参照外码,故得先存在外码),和用户自定义完整性(如用户自定义的数据大小范围)。对于违约的操作,可以在创建表中对违约操作进行处理,如常用的:
CASCADE
在父表上update/delete记录时,同步update/delete掉子表的匹配记录
SET NULL
在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)