MySQL数据库操作语句(补充1)(cmd环境运行)
一.字符串类型
enum枚举类型
/*
也叫做枚举类型,类似于单选!
如果某个字段的值只能从某几个确定的值中进行选择,一般就使用enum类型,
在定义的时候需要将该字段所有可能的选项都罗列出来: */ create table test_enum(
gender enum('male','female','secret');
); -- 而在插入数据的时候,只能在规定的选项中的进行选择:
insert into test_enum values('male');
insert into test_enum values('female');
-- 数据库中实际存储的其实是整型数据!

-- 插入female
insert into test_gender values(2);
text
在实际的开发中,自由输入区一般都用text类型,比如新闻正文,博客正文等!
create table news(
news_id int(11) primary key auto_increment ,
content text
);
set
/*
也叫做集合类型,类似于多选项!
如果一个字段的值只能是某个或某几个选项的值,最好使用set类型
同enum类型一样,在定义的时候也需要把所有可能的选项都罗列出来: */
create table zifu(
hobby set('sleep','eat','study','php','LOL','WOW')
); insert into zifu values('sleep,php,LOL');
其实,多选项实际存储的也是整型数据:

-- 选择sleep 和php 1+8= 9
insert into zifu values(9);
二.列属性
null和not null
默认情况下,字段都是可以为空的,也就是该属性的缺省值为null
-- not null 不能为空 unsigned非特殊字符
create table stu(
name varchar(20) not null,
age tinyint unsigned
);
default
自定义默认值属性,也叫做default约束,通常就是配合not null属性一起使用,也就是说某个字段不允许为空,但是如果用户没有给该字段插入数据,就用默认值去填充!
create table user_my(
id int primay key auto_increment
name varchar(32) unique key default '我是没有设置唯一键内容的name'
);
-- 当然,也可以直接插入default关键字,意思就是插入默认值: insert into user_my values(23,default);
primary key
1.设置主键之后就不能添加重复的主键的值了
2.主键会自动增加非空约束
定义主键方法有2:
-- 1.直接在字段的后面进行设置
create table stu(
id int unique primary key auto_increment
); -- 2.定义完字段后再定义主键
create table stu(
id int unique auto_increment,
primary key(id)
);
注意:
如果某个主键是一个组合主键,就只能使用第二种方式!
create table tea(
tea_name varchar(20),
class_id tinyint unsigned,
day_num tinyint unsigned,
-- 定义组合主键
primary key(tea_name,class_id)
);
unique key
-- 1.直接在字段后面加unique
create table stu(
id int unsigned primary key auto_increament,
stu_id int unsigned unique key,
tel char(11) unique key
); -- 2.先定义字段,后设置unique key
create table stu(
id int unsigned primary key auto_increament,
stu_id int unsigned ,
tel char(11) ,
-- 定义两个唯一键
unique key(stu_id,tel)
);
auto_increment
/*
自动增长属性,或者叫做自动增长约束!
作用是每次插入记录的时候,为某个字段的值自动加1 注意:使用这个属性是有条件的!!!
第一, 该字段必须为整型
第二, 该字段必须存在索引(主键或唯一键) 典型的,我们就是在ID主键上增加auto_increment属性!
当我们把主键设置为自动增长之后,主键可以直接用null来进行填充!这里不是真的把主键设置为NULL,而是启动了自动增长机制!
*/
create table stu(
-- 设置id字段为主键,并自动增长
id int unsigned primary key auto_increment,
); insert into stu values(null); -- 设置从100开始自动增长
create table stu(
id int unsigned primary key auto_increment,
name varchar(20),
)auto_increment 100; -- 设置自动增长从100开始
重置自动增长机制
/* 剖析一下truncate的语法意义:
1, 把原表先drop掉!
2, 按原表的表结构重新创建一个新表,名字和原表一样的!
所以,truncate语句是DDL,而delete from是属于DML!
所以:使用delete from语句删除所有的记录,不能重置自动增长机制!
*/
truncate table 表名;
truncate 表名;
comment
/*
是指在创建表的时候,对字段的备注,注意与普通注释符的区别:
普通注释符不属于语句的一部分,而comment属于!!
*/
create table stu(
id int unsigned primary key auto_increment comment '设置id字段为主键,并自动增长'
name varchar(20) comment '学生的姓名'
);
MySQL数据库操作语句(补充1)(cmd环境运行)的更多相关文章
- (转载)常用的Mysql数据库操作语句大全
打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...
- MySQL数据库操作语句(cmd环境运行)
一.开启MySQL服务器 1, 通过windows提供的服务管理器来完成 windows键+R 输入: services.msc 2.在本地服务中打开其服务 3.在DOC命令行下 net stop ...
- Mysql 数据库 操作语句
mysql 格式语句规范 如何登陆你的数据库? 举例! 如果你的是 编译安装的花 那就得去编译安装后的那个目录中去,我的是安装到/usr/local/mysql 下登陆数据库:cd /usr/loca ...
- Mysql数据库操作语句总结(三)
最近一段时间重新学习一下mysql命令行的用法, 这里简单记录一下 参考文章: https://www.cnblogs.com/bluealine/p/7832219.html 个人使用的是mysql ...
- 常用的Mysql数据库操作语句大全
一.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...
- 常用Mysql数据库操作语句
用户管理: 1.新建用户: 语法msyql>CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username - 你将创建 ...
- mysql数据库操作语句整合
查看版本:select version();显示当前时间:select now(); 注意:在语句结尾要使用分号; 远程连接 一般在公司开发中,可能会将数据库统一搭建在一台服务器上,所有开发人员共用一 ...
- 零、常用的Mysql数据库操作语句大全
零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...
- Mysql数据库操作语句总结
简单复习下: 增insert into -- 删 delete from -- 改 update table名字 set -- 查 select * from -- 一.SQL定义 SQL(Str ...
随机推荐
- PHP 类与对象 全解析方法
1.类与对象 对象:实际存在该类事物中每个实物的个体.$a =new User(); 实例化后的$a 引用�php的别名,两个不同的变量名字指向相同的内容 封装: 把对象的属性和方法组织在一个类(逻辑 ...
- JS实现数据双向绑定
本文参考https://www.cnblogs.com/tianhaining/p/8425345.html 首先先说个面试题哈,就是vue中的v-model是如何实现双向数据绑定的咳咳,下面开始背诵 ...
- ArccGIS 10发布WFS服务并加载到Skyline中
下面用ArcGIS Server 10.0将建筑物图层发布为WFS服务. (1)创建mxd文件.ArcMap打开建筑物图层,存为Buildings.mxd文件.注意:必须统一空间参考系,且要与图层的坐 ...
- spring cloud深入学习(十三)-----使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪
随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位 ...
- 英语-汉语600句-会见:Making an Appointment/约会
ylbtech-英语-汉语600句-会见:Making an Appointment/约会 1.返回顶部 1. Making an Appointment/约会1.喂,请问是哪位?Hello, who ...
- nfsv3 vs nfsv4
https://www.quora.com/What-is-the-difference-between-NFSv3-and-NFSv4
- nodejs+express 初学(三)
Nodejs 的模块,nodejs中每一个js文件都是独立的,不用担心他们中的变量会相互覆盖 模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个Node.js 文件就 ...
- 把char[]数组里面的内容用MessageBox显示出来
const char *q; q = mysql_get_client_info(); //获得一字符串指针 CString p(q); AfxMessageBox(p);
- Codeforces Round #466 (Div. 2) 题解940A 940B 940C 940D 940E 940F
Codeforces Round #466 (Div. 2) 题解 A.Points on the line 题目大意: 给你一个数列,定义数列的权值为最大值减去最小值,问最少删除几个数,使得数列的权 ...
- 洛谷 3089 [USACO13NOV]POGO的牛Pogo-Cow
单调队列优化dp; 对于每个点开个单调队列,按转移到它的点到它的距离从大到小,得分也从大到小排列. 每次枚举当前点前面的所有点,对于每个点的队列中二分一个距离小于等于它到当前点的答案值,放到当前点的队 ...