2、MYSQL 基本数据库命令及约束
【注】sql语句注意不要忘了后面的 “ ; ”,表示结束符
1、如何登陆数据库服务器
C:\Users\zhg>mysql -uroot -p
Enter password: ***********
2、如何查询数据库服务器中所有的数据库
mysql> show databases;
3、如何选中一个数据库
use +数据库名;
4、在选中的基础上查看数据库中的数据表
show tables;
5、在上述基础上查看一个表的字段
select * from + 表名;
6、退出数据库服务器命令
exit;
7、如何在数据库服务器中创建数据库,创建数据表(这里创建test数据库,创建pet数据表)
>create database test; //创建数据库
>show databases; //查看数据库是否创建成功
>use test; //选中所要操作的数据库
>CREATE VARCHAR pet(
name VARCHAR(20),
ower VARCHAR(20),
species VARCHAR(20),
sex CHAR(1),
birth DATE,
death DATE); //创建数据表
>show tables; //查看数据表是否创建成功
>describe pet; //查看数据表的具体结构
>drop table pet; //删除表
8、在表中添加记录
>INSERT INTO pet
VALUES('kiki','zhang','hamster','f','2020-01-01',NULL) //对应上述创建的表的结构来添加记录值
9、查看表中的记录
>select * from pet;
10、mysql常用数据类型
(1) 数值
(2)日期/时间
(3)字符串(字符)类型
【注】上述数据类型的选择:
日期/时间:主要看格式
数值类型、字符串类型:主要看范围,大小
11、删除数据(这里删除name为旺旺的记录)
>delete from pet where name='旺旺'
12、修改数据(将owner 为zhang 的记录的name改为旺旺)
>update pet set name='旺旺' where owner='zhang';
【总结】
SQL:Structure Query Language 结构化查询语言
DDL:数据定义语言:定义数据库、数据表的结构(create(创建)、drop(删除)、alter(修改))
DML:数据操纵语言:主要是用来操作数据(insert(插入)、update(修改)、delete(删除))
DCL:数据控制语言:定义访问权限,取消访问权限,安全设置(grant)
DQL:数据查询语言:select(查询) from 子句,where 子句
13、mysql建表约束
(1)主键约束
【功能】它能够唯一确定表中的一条记录,也就是我们通过给某个字段添加一条约束,就可以使得该字段不重复也不为空。
【语句1】 创建一个新表名为user,给id添加主键约束,实现如下:
> create table user(
id int primary key,
name varchar (20));
添加记录:
>insert into user values (1,'张三');
>insert into user values (2,'李四');
【注】在这里id为主键,所以id只能添加唯一的数据(上述为1,2若同时添加为1,那么就会报错)
【语句2】联合主键,创建user2,给id与name同时添加主键,只要两个中有一个不同就算唯一
> create table user2(
id int,
name varchar(20),
primary key(id,name));
添加记录:
>insert into user2 value (1,'张三');
>insert into user2 value (1,'张三');
【注】这里为联合主键,虽然id一样但是name也叫做唯一
【拓展】在创建表的时候,忘了添加主键约束:
——如何添加 add
【语句】创建表user4,后期再添加主键
> create table user4(
-> id int ,
-> name varchar(20));
//添加主键
>alter table user4 add primary key(id);
——如何删除 drop
【语句】
>alter table user4 drop primary key;
——使用modify修改字段,添加约束
【语句】
>alter table user4 modify id int primary key;
(2)自增约束 auto_increment
【语句】创建表user3,同时给id添加主键约束与自增约束,在添加记录时,只需要添加name记录,id就会实现自动生成并随着name 的添加而实现自增
>create table user3(
id int primary key auto_increment,
name varchar(20));
>insert into user3 (name) values('王五');
>insert into user3 (name) values('王五');
(3)唯一约束 unique
【语句】创建表user5,同时给name添加唯一约束
>create table user5(
-> id int,
-> name varchar(20));
>alter table user5 add unique(name);
//第二种方式
>create table user6(
-> id int,
-> name varchar(20),
-> unique(name));
//第三种方式
> create table user7(
-> id int,
-> name varchar(20) unique);
//联合方式(与联合主键一样,两者只要有一个不同就是唯一)
>create table user8(
-> id int,
-> name varchar(20),
-> unique(id,name));
——删除user7中的唯一约束
>alter table user7 drop index name;
—— 修改唯一约束
> alter table user7 modify name varchar(20) unique;
对唯一性的验证可自行验证哦
(4)非空约束 not null
【语句】创建user9,添加非空约束
>create table user9(
-> id int,
-> name varchar(20) not null);
【验证】
> insert into user9 (id) value (1); 只添加id的话,会报错,因为name不能非空
>insert into user9 value (1,'zhang'); 成功
——后期添加
>alter table user10 modify name varchar(20) not null;
——删除
>alter table user10 modify name varchar(20) null;
(5)默认约束
【语句】创建user10
> create table user10 (
-> id int,
-> name varchar(20),
-> age int default 10);
或者后期再添加
——删除
>alter table user10 alter age drop default;
——添加
>alter table user10 alter age set default 5;
(6)外键约束
【注】涉及两个表之间的关联,主表--副表,父表--子表
【语句】创建两个表classes,students
——classes表
> create table classes(
-> id int primary key,
-> name varchar(20));
——students表
> create table students(
-> id int,
-> name varchar(20),
-> class_id int,
-> foreign key(class_id) references classes(id));
添加记录:
——添加班级
> insert into classes value(1,'一班');
> insert into classes value(2,'二班');
> insert into classes value(3,'三班');
——添加学生
>insert into students value(1,'张三',1);
>insert into students value(1,'张三',2);
>insert into students value(1,'张三',3);
所谓外键约束:
1、主表(父表)中没有的数据在副表(子表)中是不可以使用的(这里对于学生的添加时,所选班级会有限制,只能是1,2,3)
2、主表中的记录被副表引用时是不可以被删除的(这里的班级已经都被副表引用,所以不可以删除)
3、作为外键必须是唯一的字段才能做外键,即必须是主键才有资格称为外键;
【总结】
添加约束
1、建表的时候就直接添加约束
2、alter .......add.......
3、alter.........modify.....
删除约束
alter ........drop ......
【补充】
1、更改字段名(将con改为cno)
>alter table course change con cno varchar(20);
2、删除字段(删除名为cno的字段)
>alter table course drop column cno;
3、增加字段(只能默认在后面添加字段,这里添加的是cno)
>alter table course add cno varchar(20);
4、调整字段的相对位置
(1)将cno放到tno前面
>alter table course modify tno varchar(20) after cno;
(2)将tno放到整个字段的最前面
>alter table course modify tno varchar(20) first;
关注个人公众号,有福利哦……

2、MYSQL 基本数据库命令及约束的更多相关文章
- linux下导入、导出mysql数据库命令 下载文件到本地
一.下载到本地 yum install lrzsz sz filename 下载 rz filename 上传 linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命 ...
- 二进制方式快速安装MySQL数据库命令集合
二进制方式快速安装MySQL数据库命令集合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1.安装mysql ls mysql ...
- (2.10)Mysql之SQL基础——约束及主键重复处理
(2.10)Mysql之SQL基础——约束及主键重复处理 关键词:mysql约束,批量插入数据主键冲突 [1]查看索引: show index from table_name; [2]查看有约束的列: ...
- MySQL 建立外键约束
http://www.jzxue.com/shujuku/mysql/201109/06-8742.html MySQL 建立外键约束的语法太晦涩难懂了, 不得不记下笔记. 1. 在建表时建立外键 C ...
- MySQL(11)---约束
MySQL(11)---约束 含义: 一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性. 先把Mysql几种约束列出来: 主键约束 外键约束 唯一性约束 非空约束 默认值约束 自增约束 ...
- Mysql 常见数据类型及约束
Mysql 常见数据类型及约束 最近在跟几个不太懂技术的同事(哈哈, 其实我也不懂), 要整一个数据库项目, 然后前端, 后端, 都没有像样的, 数据输出还不是由我们控制.... 这可难受了, 然后总 ...
- Mysql数据库命令行输入错误怎么办
Mysql数据库命令行输入错误 缺少另一半 错误输入 ' 或 " 时,必须键入另一半才能退出命令. 缺少分号 写入语句缺少分号需要补全. 输入quit或者exit退出 ctrl+c,完全退出 ...
- MYSQL - 外键、约束、多表查询、子查询、视图、事务
MYSQL - 外键.约束.多表查询.子查询.视图.事务 关系 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生 ...
- MySQL语法命令之约束篇
文章目录 1.约束概述 1.1约束的分类 1.2添加约束 2.查看表中的约束 3. `not null` 非空约束 3.1 在 `create table` 时创建 3.2 在`alter table ...
随机推荐
- IDEA 查看某个class的maven引用依赖&如何展示Diagram Elements
1.打开对应的class,如下图所示,至于具体快捷键就不说了,我是设置的eclipse的快捷键: 2.定位到对应jar,记下jar名称及版本: 3.在右侧栏点击maven,再在展出的视图中找到对应的m ...
- 使用KVO键值监听
本文章从五个方面介绍KVO(Key-Value-Observer)键值观察者: (1)功能介绍 (2)使用步骤 (3)应用场景 (4)原理理解 (5)相关的面试题 一 功能介绍 KVO是OC语言对「观 ...
- 吴裕雄--天生自然PythonDjangoWeb企业开发:解决Pythonno module named "XX"问题
在项目中加入 sys.path.append('你的django项目路径') sys.path.append('python的site-packages路径')
- Openstack----学习笔记
ceph 分布式存储,用于存放新创建的云主机磁盘镜像文件和磁盘 创建云主机流程记录 简易版本: 上图中所有发送的请求都会存放在rabbit_mq(消息队列)中,各个组件会定时取消息队列中与自己相关的请 ...
- [经验] 关于 Java 中的非空判断
在写项目的时候, 遇到一个问题 假设有一个控制层接口为: @ResponseBody @RequestMapping(value = "test", method = Reques ...
- Eclipse java SE版本解决无法新建web项目问题
最近工作要涉及web开发,之前下载的java SE (我的是indigo) 版本默认无法新建web项目,也就是找不到Dynamic Web ,在网上看了些解决办法,最终却是解决了问题,说到底就是安装一 ...
- Lamda表达式学习笔记二
Lamda表达式学习笔记二 lamda表达式----方法引用 上一篇讲到Lamda体就是对函数式接口方法的实现 ,在方法体中我们可能会引用其他方法实现逻辑,所以在lamda体中我们可以直接引用器方法 ...
- vs code 批量替换
源内容 .icon-user, .icon-people, .icon-user-female, .icon-user-follow, .icon-user-following, .icon-user ...
- 在Linux上用Apache搭建Git服务器
在Linux上用Apache搭建Git服务器 最近在学Linux,终于在Linux上用Apache搭建起了Git服务器,在此记录一下. 服务器:阿里云服务器 Linux版本:CentOS 6.5 ...
- shell脚本中执行sql脚本(mysql为例)
1.sql脚本(t.sql) insert into test.t value ("LH",88); 2.shell脚本(a.sh 为方便说明,a.sh与t.sql在同一目 ...