mysql创建表

MySQL >>> 表的操作

爱⌒轻易说出口 提交于 2019-11-28 00:51:45
表的操作 创建表的完整语法 :     create table 表名(     字段名1 字段类型[ (宽度) 约束条件 ],     字段名1 字段类型[ (宽度) 约束条件 ],     字段名1 字段类型[ (宽度) 约束条件 ]             );         注:1. 同一张表中,字段名不能相同           2. 宽度和约束条件是可选的,字段名和字段类型是必须的            3. 最后一个字段后面不能加逗号       #######################################       补充:           宽度是对存储数据库的限制;如               create table t1(name char ); # char 后面不写宽度默认为 1               insert into t1 values ('jason') ;               select * from t1;               结果如下:                                       在没有 严格模式 的情况下,数据的确能够存放进去,但是只会存进去一个 j                    而最新的数据库版本直接报错:Data too long for

MySQL表操作练习

試著忘記壹切 提交于 2019-11-28 00:50:40
题目:   创建班级,学生,老师,课程,以及成绩表;   其中表关系有一对多,和多对多关系.表的关系是确定使用双边分析发.比如,一个班级可以对应多个学生,但一个学生不可以对应多个班级,这就是一对多关系表.一个学生可以对应多门课程,一个课程可以对于多个学生,这就是表的多对多关系. ''' 创建班级表, 学生表, 老师表, 课程表,成绩表 # 创建班级表class create table class( id int primary key auto_increment, caption varchar(16), unique(id,caption) ); # 插入班级信息 insert into class(caption) values('三年级二班'), ('一年级三班'), ('三年级一班'); # 查看班级表信息和数据 desc class; select *from class; # 创建学生列表student create table student( id int primary key auto_increment, name varchar(16), gender enum('boy', 'girl') default 'boy', # enum前不加数据类型 class_id int, foreign key(class_id) references class

MySQL外键及修改表和复制表

让人想犯罪 __ 提交于 2019-11-28 00:32:41
外键 前戏之一对多关系 # 定义一张部门员工表 id name gender dep_name dep_desc 1 jason male 教学部 教书育人 2 egon male 外交部 漂泊游荡 3 tank male 教学部 教书育人 4 kevin male 教学部 教书育人 5 owen female 技术部 技术能力有限部门 """ 把所有数据都存放于一张表的弊端 1.组织结构不清晰 2.浪费硬盘空间 3.扩展性极差 """ # 上述的弊端产生原因类似于把代码全部写在一个py文件中,你应该怎么做?>>>解耦合!将上述一张表拆成员工和部门两张表! # 类似的表关系学生与班级,也是如此,一张学生表和一张班级表 # 分析表数据之间的关系:多个用户对应一个部门,一个部门对应多个用户。禁止一个用户对应多个部门这种情况是另外一张表关系 # 如何查找表与表之间的关系 """ 老师与课程表 1.站在老师表的角度:一名老师能否教授多门课程(限制死,不能,一名老师只能教python,不能同时教python和linux) 2.站在课程表的角度:一门课程能否可以被多个老师教,完全可以! 那就是课程表多对一老师表,如何表示这种关系?在课程表中创建一个字段(tea_id)指向老师表的id字段 学生与班级表 1.站在学生表的角度:??? 2.站在班级表的角度:??? 那就是学生表多对一班级表

表完整性约束

旧街凉风 提交于 2019-11-27 22:39:46
介绍 认识:约束条件和数据类型宽度一样,都是可选类型 作用:用于保证数据的完整性、一致性 有哪几种约束: primary key (PK):标识该字段为该表的主键,可以唯一标识的记录 foreign key (FK):标识该字段为该表的外键 not null:标识该字段不能为空,必须赋值 unique key (UK):标识该字段的值是唯一的 auto_increment:标识该字段的值自动增长(整数类型,而且为主键) default:为该字段设置默认值,如果插入时不给该字段设置值,此字段使用默认值。 unsigned:表示无符号 zerofill:表示使用0填充 例子: sex enum('male','female') not null default 'male' 不允许为空,默认是male age int unsigned NOT NULL default 20 必须为正值(无符号) 不允许为空 默认是20 not null 和 default 是否可空,null表示空,非字符串 not null - 不可空 null - 可空 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值 mysql> create table t1( -> id int not null default 2, -> name char(18) not null);

创建表的完整语法,基本数据类型, 枚举与集合类型,约束条件

我与影子孤独终老i 提交于 2019-11-27 22:37:49
创建表的完整语法 create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); 注意: 1.字段名和字段类型是必须的 中括号内的参数都是可选参数 2.同一张表中字段名不能重复 3.最后一个字段后面不能加逗号 create table t6( id int, name char, ); 宽度: 使用数据库的准则:能尽量让它少干活就尽量少干活 对存储数据的限制 char(1) 只能存一个字符 如果超了 mysql会自动帮你截取 1.插入的时候 mysql自动截取 2.会直接报错(mysql严格模式) alter table t5 modify name char not null; not null该字段不能插空 create table t1(id int)engine=innodb; create table t2(id int)engine=myisam; create table t3(id int)engine=memory; create table t4(id int)engine=blackhole; insert into t1 values(1); insert into t2 values(2); insert into t3 values(3); insert

表字段数据类型

送分小仙女□ 提交于 2019-11-27 22:33:13
表完整性约束 创建表的完整语法 create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); 注意事项: 在同一表中,字段名不能相同。 字段名和类型必须,宽度约束条件可选。 最后一个字段不能加逗号。 表中的数据类型 介绍 存储引擎决定了表的类型,表里面的数据也得有类型,数据还得有宽度,宽度是可选的。别问,问就是记。 建表的时候,字段都有对应的数据类型: ​ 整型、浮点型、字符类型(char 与 varchar)、日期类型、枚举与集合 数值类型 强调:对于整型来说,数据类型后的宽度并不是存储限制。 整型 TINYINT:小整数(默认有符号) 有符号:-128 ~ 127 无符号:0 ~ 255 有符号和无符号TINYINT =================有符号:默认有符号,即数字前有正负号=========== create table t1(id tinyint); insert into t1 values(-128); #插入成功 insert into t1 values(-129); #插入失败,5.7版本报错:ERROR 1264 (22003): Out of range value for column 'id' at row 1。之前版本不会报错,会将 -129 存成

mysql 表操作

烈酒焚心 提交于 2019-11-27 21:53:50
一、表的概念 表就相当于文件,表中的一条条记录就相当与文件的一行行内容,不同的是,表中的一条条记录有对应的标题,这个标题就叫做表 二、创建表:      #语法: create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] #[]括号内为约束条件,可加可不加,最后一组数据后面没有逗号 ); #注意: 1. 在同一张表中,字段名是不能相同 2. 宽度和约束条件可选 3. 字段名和类型是必须的4.最后一个字段后面不能加逗号ps:宽度指的是对存储数据的限制  create table userinfo(name char);  insert into userinfo values('jason');1:没有安全模式下的数据版本,能够存放数据但只会存存进去一个g2:char(1) 表示只能存一个字符,插入的时候MySQL自动截取3:严格模式下mysql会报错 1;先切换到指定的库下面:use 库名 或者: create table userinfo.t1(id int,name char); 2:查看当前存在的库: select database(); 3:查看表: show tables: show create table userinfo; 常用查看表结构: desc userinfo <<

信安周报-第03周:DB系统表

混江龙づ霸主 提交于 2019-11-27 19:56:36
信安之路 第03周 前言 这周自主研究的任务如下: 任务附录的解释: 文件读写在通过数据库注入漏洞获取webshell的时候很有用 系统库和表存放了很多关键信息,在利用注入漏洞获取更多信息和权限的过程很有帮助 eg:库信息、表信息、用户信息、权限信息、安装配置信息 用户信息表一般密码都是hash加密过的,可以利用hashcat暴力破解(GPU) 1.文件操作相关 1.1.探索与发现 需要什么权限才可以进行 文件读写操作 ,看个简单测试: 读写前提: secure_file_priv 不为 NULL 、用户具有 File 权限( mysql.user 中用户的 file_priv=Y ) 先看权限: root@localhost 账号直接可以读取文件 命令附录: show variables like 'secure_file_priv'; select user,host,file_priv from mysql.user; select load_file("etc/passwd"); 1.2.参数说明 secure_file_priv的简单说明: PS: MariaDB5.x 默认为空, secure_file_priv= NULL 表示 不允许 文件读写 secure_file_priv= /xxx ( / 则代表任意目录读写) 表示只能在 指定目录 /xxx 中文件读写

单表查询

社会主义新天地 提交于 2019-11-27 19:05:09
原文章: https://www.cnblogs.com/majj/p/9170351.html 语法: 一、单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二、关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7.将结果按条件排序:order by 8.限制结果的显示条数 创建公司员工表,表的字段和数据类型 company.employee 员工id id int 姓名 name varchar 性别 sex enum 年龄 age int 入职日期 hire_date date 岗位 post varchar 职位描述 post_comment     varchar 薪水 salary     double 办公室 office int 部门编号 depart_id int

mysql建表约束

感情迁移 提交于 2019-11-27 18:52:25
mysql建表约束 mysql的约束主要有主键约束,外键约束,唯一约束,非空约束,默认约束; 主键约束 它能够唯一确定一张表中的一条记录.也就是我们通过给某个字段添加约束,就使得该字段不重复且不为空; mysql> create table texts( -> id int primary key, -> name varchar(20)); –>联合主键 联合主键中的每个字段都不能为空,并且加起来不能和已设置的联合主键重复。 CREATE TABLE user ( id INT, name VARCHAR(20), password VARCHAR(20), PRIMARY KEY(id, name) ); –>自增约束 自增约束的主键由系统自动递增分配。 CREATE TABLE user ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) ); # 如果忘记设置主键,还可以通过SQL语句设置(两种方式): ALTER TABLE user ADD PRIMARY KEY(id); ALTER TABLE user MODIFY id INT PRIMARY KEY; #删除主键 ALTER TABLE user drop PRIMARY KEY; 唯一约束 -- 建表时创建唯一主键 CREATE TABLE user (