增删改查及建表约束

0.下载mysql

下载mysql:

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装mysql源:

yum install mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功:

yum repolist enabled | grep "mysql.*-community.*"

安装MySQL:

yum install mysql-community-server

启动mysql服务

service mysql start

停用mysql服务:

service mysql stop 

reference link: https://blog.csdn.net/shj_php/article/details/86712408

1.登陆、退出mysql

mysql -uroot -p123456

退出:exit

2.基本语法

显示所有数据库

show databases

创建数据库

create database test;

切换数据库

use test;

显示数据库中的所有表

show tables;

创建数据表

create table pet(

name varchar(20),

owner varchar(20),

species varchar(20),

sex char(1),

birth date,

death date);

查看数据表结构

describe pet;

查询表

select * from pet;

插入数据

insert into pet values ('puffball', 'Diane', 'hamster', 'f', '1990-03-30', NULL);

修改数据

update pet set name = 'squirrel' where owner = 'Diane';

删除数据

delete from pet where name='squirrel';

删除表

drop table myorder;

3.1主键约束(使某个字段不重复且不得为空,确保表内所有数据的唯一性。)

create table user (

    id INT primary key ,

    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;        删除主键

3.2 联合主键 (每个字段都不能为空,可以部分相同 但不能完全相同)

create table user (

    id int,

    name VARCHAR(20),

    password VARCHAR(20),

    PRIMARY KEY(id, name)

);

3.3 自增约束(主键由系统自动递增分配)

CREATE TABLE user3 (

    id int primary key auto_increment,

    name VARCHAR(20)

);

4.唯一主键(和primary key相似,但是可以为空)

建表时创建唯一主键

CREATE TABLE user( 

 idINT, 

 nameVARCHAR(20), 

 UNIQUE(name)

);

如果建表时没有设置唯一建,还可以通过SQL语句设置(两种方式)

ALTERTABLEuser ADD UNIQUE(name);

ALTERTABLEuser MODIFY nameVARCHAR(20) UNIQUE;

删除唯一主键

ALTERTABLEuser DROP INDEX name;

5.非空约束(约束某个字段不能为空)

CREATE TABLE user(

 idINT, 

 name VARCHAR(20) NOT NULL

);

移除非空约束

alter table user modify name varchar(20);

6.默认约束(约束某个字段的默认值)

CREATE TABLE user2( 

 id INT, 

 name VARCHAR(20), 

 age int default 10

);

7.外键约束

班级表

create table classes(

id int primary key,

name varchar(20)

);

学生表

create table students(

id int primary key,

name varchar(20)

这里的 class_id 要和 classes 中的 id 字段相关联

class_id int,

表示 class_id 的值必须来自于 classes 中的 id 字段值

foregin key(class_id) references classes(id)

);

1. 主表(父表)classes 中没有的数据值,在副表(子表)students 中,是不可以使用的。

2. 主表中的记录被副表引用时,主表不可以被删除。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 接下来的一些内容,我们需要提前学一些简单的sql语句,方便大家理解接下来的知识。 DDL—数据定义语言(Creat...
    不排版阅读 448评论 0 1
  • CREATE TABLE IF NOT EXISTS ecs_order_info (order_id mediu...
    cookie口阅读 15,816评论 0 16
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,162评论 0 0
  • 一、什么是数据库:(数据库软件) 1).什么是"数据库": 从字面上理解就是一个"存储数据的仓库",它本身是一个软...
    七点的太阳丶夕阳阅读 613评论 0 2
  • 美不胜收 看到别人的好东西, 拿出来给大家欣赏欣赏 有没有人知道是什么材质 什么工艺。能够看懂的一定是高手中的高手
    给我能量和力量阅读 337评论 4 10