• 2、MYSQL 基本数据库命令及约束


    【注】sql语句注意不要忘了后面的   “  ; ”,表示结束符


    1、如何登陆数据库服务器

            C:Userszhg>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;

                  关注个人公众号,有福利哦……

  • 相关阅读:
    java-selenium三种等待方式
    java-selenium八种元素定位方式
    java-selenium浏览器常用操作命令
    ELK日志分析平台搭建全过程
    详解Oracle架构、原理、进程
    Oracle建立约束、删除约束
    OGG基础知识整理
    由浅入深解读Redis高级能力及性能调优
    《收获,不止Oracle》读书笔记
    转:一条sql语句在mysql中是如何执行的
  • 原文地址:https://www.cnblogs.com/guo-2020/p/12306728.html
Copyright © 2020-2023  润新知