为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
学习人数
综合评分9.67
950人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 1.添加主键约束 ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name, ...); CREATE TABLE users2( username VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED ); SHOW CREATE TABLE users2; ALTER TABLE users2 ADD id SMALLINT UNSIGNED; SHOW COLUMNS FROM users2; ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id); SHOW COLUMNS FROM users2; 2.添加唯一约束 ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...); ALTER TABLE users2 ADD UNIQUE (username); SHOW COLUMNS FROM users2; 3.添加外键约束 ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] FOREIGN KEY [index_name] (index_col_name, ...) reference_definition ALTER TABLE users2 ADD FOREIGN KEY (pid) REFERENCES province (id); 4.添加、删除默认约束 ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} ALTER TABLE users2 ADD age TINYINT UNSIGNED NOT NULL; ALTER TABLE users2 ALTER age SET DEFAULT 15; SHOW一下 ALTER TABLE users2 ALTER age DROP DEFAULT;
    查看全部
  • 1.修改数据表 添加单列 ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]; SHOW COLUMNS FROM users1; ALTER TABLE users1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10; ALTER TABLE users1 ADD passwd VARCHAR(30) NOT NULL AFTER username; ALTER TABLE users1 ADD truename VARCHAR(20) NOT NULL FIRST; 2.添加多列 ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition, ...); 3.删除列 ALTER TABLE tbl_name DROP [COLUMN] col_name; ALTER TABLE users1 truename;//单次删除 ALTER TABLE users1 DROP passwd, DROP age; SHOW COLUMN FROM users1; 修改数据表 添加单列 ALTER TABLE table_name ADD [COLUNM] col_name column_definition [FIRST | AFTER col_name] --FIRST AFTER指定添加的位置 --添加多列 ALTER TABLE table_name ADD [COLUNM] (col_name column_definition,...) 删除列 ALTER TABLE tbl_name DROP [COLUMN] col_name 删除多列 ALTER TABLE tbl_name DROP [COLUMN] col_name, DROP [COLUMN] col_name,DROP [COLUMN] col_name.
    查看全部
  • 对一个数据列建立的约束,称为列级约束. 对多个数据列建立的约束,称为表级约束. 列级约束既可以在列定义时声明,也可以在列定义后声明。 表级约束只能在列定义后声明。 NOT NULL和DEFAULT约束不存在表级约束
    查看全部
  • 1.外键约束的参照操作 CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行 SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL.如果使用该选项,必须保证子表列没指定非空 RESTRICT:拒绝对父表的删除或更新操作。 NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同 CREATE TABLE user1( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCES province('id') ON DELETE CASCADE ); SHOW CREATE TABLE user1; INSERT province(pname) VALUES('A'); INSERT province(pname) VALUES('B'); INSERT province(pname) VALUES('C'); SELECT * FROM province; INSERT users1(username, pid) VALUES('TOM', 3); INSERT users1(username, pid) VALUES('John', 7);//不符合外键约束 INSERT users1(username, pid) VALUES('John', 1); INSERT users1(username, pid) VALUES('Rose', 3); SELECT * FROM users1; DELETE FROM province WHERE id=3; SELECT * FROM province; SELECT * FROM users1; 很少使用物理外键约束,常用逻辑的外键约束。 实际的使用中,一般不去定义物理的外键约束。
    查看全部
  • 1.约束 保证数据的完整性和一致性 约束分为表级约束和列级约束 约束类型包括 NOT NULL(非空约束) PRIMARY KEY(主键约束) UNIQUE KEY(唯一约束) DEFAULT(默认约束) FOREIGN KEY(外键约束) 2.外键约束 - FOREIGN KEY 保持数据一致性, 完整性 实现一对一或一对多关系 3.外键约束的要求 父表和子表必须使用相同的存储引擎,而且禁止使用临时表 数据表的存储引擎只能为InnoDB 外键列和参照列必须具有类似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。 外键列和参照列必须参加索引。如果外键列不存在索引的话,MySQL将自动创建索引。 4.编辑数据表的默认存储引擎 MySQL配置文件 default-storage-engine=INNODB mysql -uroot -p USE test; CREATE TABLE province( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20) NOT NULL ); SHOW CREATE TABLE province; CREATE TABLE users( id SMALLINT UNSIGNED PRIMARY KEY AUTOINCREMENT, username VARCHAR(10) NOT NULL, pid BIGINT, FOREIGN KEY (pid) REFERENCE province (id) ); //有错 CREATE TABLE users( id SMALLINT UNSIGNED PRIMARY KEY AUTOINCREMENT, username VARCHAR(10) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCE province (id) ); //成功 SHOW INDEXES FROM province; SHOW INDEXES FROM users; SHOW CREATE TABLE users;
    查看全部
  • 1.默认约束 - DEFAULT 默认值 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值 CREATE TABLE tb6( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20) NOT NULL UNIQUE KEY, sex ENUM('1', '2', '3') DEFAULT '3' ); SHOW COLUMNS FROM tb6; INSERT tb6(username) VALUES('TOM'); SELECT * FROM tb6;
    查看全部
  • 1.唯一性约束 - UNIQUE KEY 唯一约束 唯一约束可以保证记录的唯一性 唯一约束的字段可以为空值 每张数据表可以存在多个唯一约束 CREATE TABLE tb5( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20) NOT NULL UNIQUE KEY, age TINYINT UNSIGNED ); SHOW COLUMNS FROM tb5; INSERT tb5(username, age) VALUES('TOM', 22); INSERT tb5(username, age) VALUES('TOM', 23);//报错,违反唯一性约束
    查看全部
  • 1.主键 - PRIMARY KEY 主键约束 每张数据表只能存在一个主键 主键保证记录的唯一性 主键自动为NOT NULL CREATE TABLE tb3( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(30) NOT NULL ); SHOW COLUMNS FROM tb3; INSERT tb3(username) VALUES('A'); INSERT tb3(username) VALUES('BB'); INSERT tb3(username) VALUES('C'); INSERT tb3(username) VALUES('D'); SELECT * FROM tb3; CREATE TABLE tb4( id SMALL UNSIGNED PRIMARY KEY, username VARCHAR(20) NOT NULL ); SHOW COLUMNS FROM tb4; INSERT tb4 VALUES(4, 'TOM'); INSERT tb4 VALUES(22, 'John'); INSERT tb4 VALUES(22, 'Rose'); //主键字段不允许有重复值出现 auto_increment必须和主键一起使用,而主键不一定要设成auto_increment
    查看全部
  • 1.自动编号 - AUTO_INCREMENT 自动编号,且必须与主键配合使用 自动编号AUTO_INCREMENT 1、自动编号:保证记录的唯一性 2、类型必须为整型(可以是FLOAT(5,0)等,小数点后必须为0),必须和主键PRIMARY KEY组合使用 3、默认情况下,起始值为1,每次的增量为1 默认情况下,起始值为1, 每次增量为1. CREATE TABLE tb3( id SMALLINT UNSIGNED AUTO_INCREMENT, username VARCHAR(30) NOT NULL); //有错,自动增量字段必须设置成主键
    查看全部
    0 采集 收起 来源:MySQL自动编号

    2015-03-01

  • 1.空值与非空 NULL,字段值可以为空 NOT NULL, 字段值禁止为空 CREATE TABLE tb2( username VARCHAR(20) NOT NULL, age TINYINT UNSIGNED NULL); SHOW COLUMNS FROM tb2; INSERT tb2 VALUES('TOM', NULL); SELECT * FROM tb2; INSERT tb2 VALUES(NULL, 25);
    查看全部
  • 1.插入记录 INSERT [INTO] tbl_name [(col_name, ...)] VALUES(val, ...) INSERT tb1 VALUES('TOM‘, 23, 7898.25); INSERT tb1 VALUES('Tom', 25); //有error INSERT tb1(username, salary) VALUES('John', 4005.55); 2.记录查找 SELECT expr, ... FROM tbl_name; SELECT * FROM tb1; //* 是字段的过滤
    查看全部
  • 【查看数据表列表】 SHOW TABLES [FROM db_name] 【查看数据表结构】 SHOW COLUMNS FROM tbl_name
    查看全部
  • 1.查看数据表列表 SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr] SHOW TABLES; //查看当前数据库中的表 SHOW TABLES FROM mysql; FROM之后,当前数据库不会发生改变 SELECT DATABASE(); 1、查看数据表是否存在:SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr ] 2、FROM db_name 可以查看其它数据库中的表
    查看全部
  • 1.数据表 是数据库最重要的组成部分之一,是其他对象的基础。行称为记录,列称为字段 2.打开数据库 USE 数据库名称; mysql -uroot -proot -P3306 -h127.0.0.1 SHOW DATABASES; USE test; SELECT DATABASE(); 3.创建数据表 CREATE TABLE [IF NOT EXISTS] table_name( column_name data_type, ... ) CREATE TABLE tb1( username VARCHAR(20), age TINYINT UNSIGNED, salary FLOAT(8,2) UNSIGNED );
    查看全部
  • 字符型 1、CHAR(M):定长类型,比如CHAR(5),如果我们只赋值abc,那么系统会自动在后面补两个空格 2、VARCHAR(M):变长类型,L+1个字节,其中L<=M且0<=M 3、ENUM('value1','value2'...)枚举值,提供几个选项,选择其中一个,如:性别('男','女','保密') 4、SET('value1','value2'...) 最多64个成员,可以任选里面其中几个,任意排列组合~
    查看全部

举报

0/150
提交
取消
课程须知
要想学习本课程,你只需要知道数据库是个什么东东就足够了,是不是很easy?!
老师告诉你能学到什么?
1、MySQL安装与配置 2、数据类型 3、流程控制与运算符 4、DDL、DCL、DQL、DML 5、常用函数 6、表类型(存储引擎) 7、图形化工具

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!