【注】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 基本数据库命令及约束的更多相关文章

  1. linux下导入、导出mysql数据库命令 下载文件到本地

    一.下载到本地 yum install lrzsz sz filename  下载 rz filename  上传   linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命 ...

  2. 二进制方式快速安装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 ...

  3. (2.10)Mysql之SQL基础——约束及主键重复处理

    (2.10)Mysql之SQL基础——约束及主键重复处理 关键词:mysql约束,批量插入数据主键冲突 [1]查看索引: show index from table_name; [2]查看有约束的列: ...

  4. MySQL 建立外键约束

    http://www.jzxue.com/shujuku/mysql/201109/06-8742.html MySQL 建立外键约束的语法太晦涩难懂了, 不得不记下笔记. 1. 在建表时建立外键 C ...

  5. MySQL(11)---约束

    MySQL(11)---约束 含义: 一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性. 先把Mysql几种约束列出来: 主键约束 外键约束 唯一性约束 非空约束 默认值约束 自增约束 ...

  6. Mysql 常见数据类型及约束

    Mysql 常见数据类型及约束 最近在跟几个不太懂技术的同事(哈哈, 其实我也不懂), 要整一个数据库项目, 然后前端, 后端, 都没有像样的, 数据输出还不是由我们控制.... 这可难受了, 然后总 ...

  7. Mysql数据库命令行输入错误怎么办

    Mysql数据库命令行输入错误 缺少另一半 错误输入 ' 或 " 时,必须键入另一半才能退出命令. 缺少分号 写入语句缺少分号需要补全. 输入quit或者exit退出 ctrl+c,完全退出 ...

  8. MYSQL - 外键、约束、多表查询、子查询、视图、事务

    MYSQL - 外键.约束.多表查询.子查询.视图.事务 关系 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生 ...

  9. MySQL语法命令之约束篇

    文章目录 1.约束概述 1.1约束的分类 1.2添加约束 2.查看表中的约束 3. `not null` 非空约束 3.1 在 `create table` 时创建 3.2 在`alter table ...

随机推荐

  1. python多线程下载ts文件

    # -*- coding: utf-8 -*- """ Created on Wed Aug 22 15:56:19 2018 @author: Administrato ...

  2. centos 7中添加一个新用户并授权的步骤详解

    1.创建新用户: 创建一个用户名为:zhangbiao adduser zhangbiao 为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略: passwd zhangbiao  更 ...

  3. Duilib 窗口之间的消息传递

    转载:https://www.cnblogs.com/Alberl/p/3404240.html 1.定义消息ID #define WM_USER_POS_CHANGED WM_USER + 2 2. ...

  4. Xcode 8 修改已创建工程的 organizion name

    在创建工程时,会需要填写公司信息,对于已创建的工程,新建文件时,公司信息显示为刚开始创建的公司信息.如果需要对公司名称进行修改,需进行以下 可以 打开 工程名.xcodeproj 文件 (显示包内容) ...

  5. Linux centosVMware LNMP架构介绍、MySQL安装、PHP安装、Nginx介绍

    一. LNMP架构介绍 和LAMP不同的是,提供web服务的是Nginx 并且php是作为一个独立服务存在的,这个服务叫做php-fpm Nginx直接处理静态请求,动态请求会转发给php-fpm   ...

  6. Flask - 上下文管理(核心)

    参考 http://flask.pocoo.org/docs/1.0/advanced_foreword/#thread-locals-in-flask https://zhuanlan.zhihu. ...

  7. JavaScript引用类型与对象

    1.引用类型 引用类型的值(对象)是引用类型的一个实例.引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法. 对象是某个特定引用类型的实例.新对象是使用new操作符后跟一个构造 ...

  8. PAT乙级完结有感

    去年10月开始刷的题,拖拖拉拉的终于借这个假期刷完了,总的来说还是有点小激动的,毕竟,第一次刷完一个体系,在这之前,我在杭电.南阳.洛谷.leetcode.以及我们自己学校的OJ上刷过,但都没有完完整 ...

  9. 布局文件中fill_parent和match_parent有什么区别?

    1)fill_parent设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间.这跟Windows控件的dockstyle属性大体一致.设置一个顶部布局或控件 ...

  10. H5地理定位获取用户当前位置、城市

    第一步:需要在百度地图开发者平台创建一个应用:http://lbsyun.baidu.com/apiconsole/key/create 配置信息 申请配置成功以后返回一个AK 第二步:引入百度地图的 ...