1

作者: 聪明的小一休 | 来源:发表于2019-08-21 14:13 被阅读0次

    DELETE from student WHERE id=6 ;
    -- 创建用户
    create user wcj identified by '123';
    -- 赋予权限
    grant all privileges on *.* to wcj;
    flush PRIVILEGES;

    -- 删除用户
    drop user wcj;

    -- 修改用户名
    rename user xx to wcj;

    -- 修改密码
    alter user xx identified by '456' -- 版本不支持
    set password for xx = '456'

    grant all privileges on *.* to wcj identified by '456';
    -- 收回权限
    revoke all privileges ,grant option from wcj
    select @@version
    -- 查看权限
    show grants for wcj

    创建数据库的sql语句
    create database xxx(xxx是要创建的数据库的名字,xxx不能是使用已有的数据库名和关键字)

    删除数据库的sql语句
    drop database xxx(xxx是要删除的数据库的名字,xxx应该是存在的数据库)

    数据类型:
    整数类型:int(4)表示整数类型最大位数有四位
    浮点数类型:float 表示浮点数类型
    文本类型:char(10)表示可容纳10个文字的固定文本,如果不足10个文本,会用空格补齐
    varchar(10)表示可容纳10个文本的变长文本,不足10个文本,也不会使用空格补齐
    时间类型:date 存储的是日期(年-月-日)生日
    time 存储的是时间(时:分:秒) 比赛记录
    datetime 存储的日期+时间(年-月-日 时:分:秒) 审批时间 注册时间

    一、表的操作:
    1.创建表
    注意:表名不能有关键字和已有的表名

    语法
    create table 表名(
    列1名 列1的数据类型,
    列2名 列2的数据类型,
    ...
    列n名 列n的数据类型
    );
    注:列名在同一个表中不可重复,在不同表中可以重名。
    命名规范:常见驼峰式命名
    约束:mysql 有4个
    含义:对表中录入的数据进行一定的约束,使数据更加准确。
    (1)主键约束:关键字:primary key
    规则:主键约束的列中的数据,作为某条数据的代表,其具有唯一代表性,且不能为空。一张表中只能允许最多有一个主键约束。
    规范:主键约束的列中的数据应该是无现实意义的。
    有意义的数据作为主键,可能存在修改风险(比如一代身份证更换为二代 15位->18位),系统中很多关联数据都要更新
    使用无意义的数据作为主键,没有这样的风险。

    联合主键:一张表同时有多个列作为主键出现,被称为联合主键,两个列的值的组合作为主键出现。

    以下哪些说法是正确的?
    A.一张表最多只能有一个主键 OK
    B.一张表中最多只能有一个列是主键 NG
    C.一张表中可以有多个主键 NG
    D.一张表中可以有多个列是主键 OK
    总结起来:主键最多有一个,但可以是多个列。

    创建主键:
    (a)直接在建表时,在对应的主键列上通过primary key声明主键
    create table student(
    stuid int(8) primary key,
    sname varchar(32),
    birthday date
    );
    (b)在建表语句的结尾处指定主键列(可以指定联合主键,指定了stuid和sname为联合主键)

    create table student(
    stuid int(8),
    sname varchar(32),
    birthday date,
    primary key(stuid, sname)
    );

    (c)在建表语句的结尾处以命名的方式指定主键列(可以指定联合主键,为约束本身起名字,管理和维护约束本身)
    create table student(
    stuid int(8),
    sname varchar(32),
    birthday date,
    constraint pk_student primary key(stuid)
    );

    建表后追加主键
    alter table student add primary key(stuid);

    建表后移除主键
    alter table student drop primary key;
    (2)外键约束 关键字:Foreign key
    出现在两张表中,一个表中的某个列的数据引用了另一张表的主键或者唯一约束。
    外键能够填写的数据:另一个表中的主键的数据和空值

    create table student(
    stuid int(8) primary key,
    sname varchar(32),
    birthday date,
    majorid int(8),
    foreign key(majorid) references majors(majorid)
    );

    student表中majorid列的数据依赖于majors表中majorid列,必须其中有的数据

    alter table student add foreign key(majorid) references majors(majorid)

    (3)唯一约束 unique
    约束数据在表中是唯一的,不可重复
    与主键比较
    a.一张表中最多只能有一个主键,可以有任意多个唯一约束
    b.唯一约束修饰列中允许出现空值

    笔试题: 主键约束与唯一约束的区别?

    create table student(
    sno int(8) primary key,
    sname varchar(32) unique,
    );

    create table student(
    sno int(8),
    sname varchar(32),
    primary key(sno),
    unique(sname)
    );
    (4)非空约束
    非空约束约束的列不允许出现空值,必须给出数据
    create table student(
    sno INT(8) primary key,
    sname VARCHAR(32) unique not null
    );

    Oracle中5个
    主键约束
    外键约束
    唯一约束
    非空约束
    (5)检查约束(自定义约束)check(xxx>0)
    check(xxx between 0 and 2000)

    and - &&
    or - ||
    not - !
    自增:一张表中允许至多一个列进行自增,数据从1开始,每次自增1
    2.删除表
    语法:DROP TABLE 数据库名.表名; 选中数据库时:DROP TABLE 表名;
    删除表:将整张表都删除掉,不保留表(结构)本身。

    3.截断表
    语法:TRUNCATE TABLE 数据库名.表名; 选中数据库时:TRUNCATE TABLE 表名;
    截断表:删除表中的数据,保留表(结构)本身。

    笔试/面试:delete,drop和truncate的区别? 删除表和截断表的区别?

    4.重命名表
    ALTER TABLE 旧表名 RENAME 新表名

    5.改变表

    (1)新增一个列
    ALTER TABLE 表名 add column 新列名 数据类型;

    ALTER TABLE majors ADD COLUMN snum INT(4);

    (2)修改列名/修改列的数据类型
    ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型;

    旧列中已有数据情况下,可能无法修改类型

    (3)删除一个列
    ALTER TABLE 表名 DROP COLUMN 列名

    相关文章

      网友评论

          本文标题:1

          本文链接:https://www.haomeiwen.com/subject/wtmbsctx.html