为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
与MySQL的零距离接触_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • 查看key和索引: show indexes from 表名 [\G] // 可以查看key_name (和字段名相同) 查看外键: show create table 表名 删除主键约束 ALTER TABLE tbl_name DROP PRIMARY KEY; // 唯一所以不用key_name 删除唯一约束 ALTER TABLE tbl_name DROP {INDEX|KEY} key_name; // 唯一约束有多个, 需要具体的名字 删除外键约束 ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol // fk_symbol是外键约束的名字.系统会自动给外键列创建名称,通过SHOW CREATE TABLE 表名 来查看其中CONSTRAINT后加注的字段名称
    查看全部
  • INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},... 该方式只可以插入一条记录,用于子查询 INSERT [INTO] tbl_name [(col_name,...)] SELECT ... 可以将查询结果插入到指定数据表
    查看全部
  • INSERT [INTO] tbl_name [(col_name)] {VALUES|VALUE}({expr|DEFAULT},...),(...),...
    查看全部
  • 数据表的修改操作:无非就是添加列,删除列,添加约束,删除约束。用的是ALTER,而INSERT是对数据表添加插入记录用的。 1.添加主键约束 ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) e.g:ALTER TABLE users ADD CONSTRAINT PK_users_id PRIMARY KEY (id); 2.添加唯一约束 ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) e.g:ALTER TABLE users ADD UNIQUE (username); 3.添加外键约束 添加外键约束 要求同之前相同 (1)相同的存储引擎 (2)数字的数据类型相同,本节中均为SMALLINT ,符号为UNSIGNED 因为参照列中存在PRIMARY KEY,有索引,所以外键列会自动创建索引格式 ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name](index_col_name,...) reference_definition e.g:ALTER TABLE users ADD FOREIGN KEY (pid) REFERENCES provinces (id) 4.添加/删除默认约束 DEFAULT ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} e.g: ALTER TABLE users ADD age TINYINT UNSIGNED NOT NULL; ALTER TABLE users ALTER age SET DEFAULT 15; ALTER TABLE users ALTER age DROP DEFAULT;
    查看全部
  • 添加列:ALTER TABLE tb_name ADD 列名 数据类型 (+ AFTER xx , 将会添加新列到指定列xx 的后面); 举例:ALTER TABLE users ADD password VARCHAR(30) AFTER username; 另外:ALTER TABLE users ADD truename VARCHAR(20) FIRST; 会将新列添加到最前面。 删除列:ALTER TABLE tb_name DROP 列名,DROP 列名,DROP 列名...; 举例:ALTER TABLE users DROP password; ALTER TABLE users DROP age,DROP truename; 添加多列:ALTER TABLE tb1_name ADD[COLUMN] (col_name column_definition,...); 添加单列时,列名和列的定义不需要加小括号,可以指定列的位置;添加多列时,则需要给列名及列定义添加小括号,同时不能指定列的位置
    查看全部
  • 表级约束和列级约束 实际开发中,列级约束用的较多,表级约束很少用到 另外NOT NULL,和DEFAULT约束只有列级约束,没有表级约束 而对主键,唯一,外键这三者都有表级和列级约束
    查看全部
  • CASCADE:删除或更新父表中的数据相应的删除或更新子表中的相匹配的行; SHOW CREATE TABLE tb_name;//显示数据表创建时的命令; 创建子表:users1; >CREATE TABLE users( >id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, >username VARCHAR(10) NOT NULL, >pid(外键) SMALLINT(与参照键类型相同) UNSIGNED(与参照键有无符号类型也要相同),//外键的作用体现在这:如果我们要添加一个省份的字段,需要添加个char型的,现在有了关系型数据库,我们只需要存储省份的id即可; >FOREIGN KEY (pid) PREFERENCES provinces (id) ON DELETE CASCADE, >); INSERT provinces(pname) VALUES('A'); INSERT provinces(pname) VALUES('B'); INSERT provinces(pname) VALUES('C'); INSERT users1(username,pid) VALUES('Tom',1); INSERT users1(username,pid) VALUES('Jerry',2); INSERT users1(username,pid) VALUES('Lucy',3); 当删除provinces中的id=3的数据C时,相应的users1中的Lucy也会被删掉,更新的话同样如此; SET NULL://从父表删除或更新行,会设置子表中的外键列为NULL,如果使用该选项,必须保证子表列没有指定NOT NULL RESTRICT://拒绝对父表的删除或更新操作; NO ACTION://标准的SQL语句,在MYSQL当中与RESTRICT相同 实际开发中,我们很少使用物理的外键约束,而是使用逻辑约束;物理的外键约束只有innoDB这种存储引擎才会支持,MYISAM这种引擎就不支持物理的外键约束。反过来说,当我们使用到的引擎为MYISAM时,只能使用逻辑外键(即两个表的设计的逻辑关系)。
    查看全部
  • FOREIGN KEY:保持数据一致性,完整性;实现一对一或一对多关系。 要求:父表和子表必须使用相同的存储引擎,而且禁止使用临时表;数据表的存储引擎只能为InnoDB;外键列和参照列必须具有类似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同;外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。 在 MY.ini 文件中编辑默认的存储引擎:default-storage-engine=INNODB; 显示创建表的语句:SHOW CREATE TABLE table_name; 查看表是否有索引:SHOW INDEXS FROM table_name; 以网格查看表是否有索引:SHOW INDEXS FROM table_name\G; Eg: CREATE TABLE table_name1( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,/* 参照列id在主键创建时将自动创建索引 */ name VARCHAR(20) NOT NULL );/* 父表*/ CREATE TABLE table_name2( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED, /* 外键列pid不存在索引,MySQL将自动创建索引 */ FOREIGN KEY (pid) REFERENCES table_name1(id) /* 外键 pid 参照 table_name1中的 id 字段*/  );/*子表*/
    查看全部
  • 外键约束的要求
    查看全部
  • 约束:
    查看全部
  • 数据类型 整型 (tinyint smallint mediumint int bigint) 浮点型 (FLOAT{[M,D]},DOUBLE{[M,D]})M:总位数,D:小数点后位数 日期 (YEAR DATE TIME TIMESTEMP) 字符型 (CHAR VARCHAR TEXT) DOS 界面连接数据库 mysql -u用户名 -p密码 -h主机 显示数据库 SHOW DATABASES; 显示表结构 SHOW COLUMNS FROM table; 显示所有表 SHOW TABLES; 进入数据库 USE 数据库; 创建数据库 CREATE DATABASE 库名; 创建表 CREATE TABLE 表名(字段及信息); 插入数据 INSERT INTO table []VALUES();[]为空说明插入全部的值 查询数据 SELECT 字段 FROM table WHERE 条件 自增自动编号 auto_increment 主键约束 primary key(有auto_increment的一定是主键,主键不一定有auto_increment) 唯一约束 unique key 默认约束 default 当没有赋值时则自动添加默认值
    查看全部
    0 采集 收起 来源:总结

    2017-02-01

  • 主键PRIMARY KEY和唯一约束UNIQUE KEY都可以保证唯一性 区别: 主键在一张数据表中只能有一个,主键不能为空 唯一约束在一张表可以有多个,另外唯一约束可以是空值
    查看全部
  • 主键约束 1、唯一性(可以赋值但是不能给两个记录赋一样的值)每张表只存在一个主键 2、非空,插入方式与NOT NULL一样 3、自动编号(AUTO_INCREMENT)必须与主键(PRIMARY KEY)搭配使用,主键可以不与自动编号一起使用 创建一个带主键的表: CREATE TABLE user( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) NOT NULL -> ); Database changed 接着一次插入数据 便会有编号出现 但是如果删除了 编号会出现间断
    查看全部
  • AUTO_INCREAMENT 字段必须是数值型,小数位数必须为0 自动编号,且必须与主键组合使用 默认情况下,起始值为1,每次的增量为1
    查看全部
    0 采集 收起 来源:MySQL自动编号

    2017-02-01

  • 插入记录: INSERT [INTO] tbl_name [(col_name,...)] VALUES (val,...); 查找记录: SELECT expr,... FROM tbl_name; *字段的过滤,全部记录
    查看全部

举报

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

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