sql组成语言 1 -- DDL(数据定义语言)数据表的基本操作

DDL—数据定义语言

创建数据库中的各种对象——表、视图、索引、同义词、聚簇等

  • 进入数据库
    mysql -uroot -p
    密码(输入不显示)
  • 创建数据库
    create database 数据库名字;
    create database 数据库名字 charset=utf8;(直接设置编码格式,支持中文)
  • 查看所有数据库
    show databases;
  • 切换数据库
    use 数据库名字
  • 删除数据库
    drop database 数据库名字
  • 修改数据库编码格式(默认latin1,中文可能乱码)
    方式一:
    alter database 数据库名字 character set 编码格式(utf8)
    方式二:
    1. 进入mysql的配置文件
      cd /etc/mysql ------找到my.cnf并打开,看看最后是否存在这两行代码在这里插入图片描述存在则继续
  1. 进入 mysql.conf.d隐藏文件,打开文件mysql.cnf(gedit / vi)
  2. 找到代码:skip-external-locking
    后面添加代码:character-set-server=utf8保存退出
  3. 退回上一级 mysql这个目录
    找到conf.d 并进入
  4. 找到并打开文件mysql.cnf(空白)—设置客户端编码格式
    [mysql]
    default-character-set=utf8
  5. 重启mysql服务
    service mysql restart
  6. 检测mysql 的编码格式:
    退回根目录 cd~
    进入mysql 输入\s 看具体信息
    sql组成语言 1 -- DDL(数据定义语言)数据表的基本操作_第1张图片

这样就ok了 ,根据个人习惯,本人喜欢创建数据库时候直接创建编码格式

数据表的基本操作
  • 创建表
    create table 表名(id int(11),name varchar(22),deptid int(11),salary float…);
  • 插入数据-----列就是前面插入的id name…
    第一种:
    insert into 表名(列名1,列名2…)values(列值1,列值2…)
    注意:
    在表明后给出插入的列名,其他没有指定的列等同于插入null值
    第二种(第一种简写):
    insert into 表名 values(列值1,列值2…),(…).()
    注意:
    值的个数必须和列的个数一致,顺序一样
    数据中的所有的字符串必须是单引号,不能双引号
  • 查看当前数据库中所有的表:
    show tables;
  • 查询表的数据:
    selelct * from table_name;
常见六大约束:
  1. not null 非空
  2. default :默认值,用于保证该字段的默认值 ; 比如年龄
  3. primary key : 主键,用于保证该字段的值具有唯一性,并且非空
  4. unique : 唯一约束,保证该字段的值可以为空,具有唯一性
  5. foreign key : 外键约束; 用于限制两个表的关系, 用于保证该字段的值必须来自于主表的关联列的值;
    在从表中添加外键约束,用于引用主表中的某列的值;
    比如: 学生表的专业编号,员工表的部门编号,员工表的工种编号;
  6. check : 检查约束[mysql不支持,不报错,没有实际效果]
    一般都在创建表或者修改表时添加约束
  • 主键约束 primary key
  1. 将一个字段设置为主键:

    第一种:
    create table ta_tmp2(id int(11) primary key,name varchar(22));----单一主键

    第二种:
    create table ta_tmp3(id int(11),name varchar(22),primary key(id));-----称之为联合主键

  2. 使用主键完成自增长
    格式:
    字段名 数据类型 primary key auto_increment

    设置主键后,没一条数据不能有重复数据,不能为空,在自己手动插入数据时,会导致操作的失效,此时可以使用自增长的方式,无需手动控制,insert into 就不用写这个字段,默认自增长

  • 外键约束
    外键使用在两个表数据之间的建立连接,可以对一个表设置一个或者多个外键

    特点:
    是表中的一个字段,可以不是表的主键, 一个表中的外键可以为空值,如果不为空,每一个外键必须等于另外一张表的主键的某一个值

    作用:
    保证数据在引用时的完整性,不允许删除在另外一张表中具有关联关系的行

    创建外键的语法规则:
    consreaint 外键名 foreign key 字段名1,字段名2…references 主表名 主键列1,主键列名2…

    外键名---->外键约束的名称,一个表中不能有相同名称的外键
    字段名---->表示从表中需要添加外键约束的字段列
    主表名-----》被从表外键所依赖的表的名称
    主键列----》表示主表中定义的主键列

    例如:
    创建部门表-----设置为主键—》主表
    create table ta_dept1(id int(11) primary key,name varchar(22));

    创建员工表----》设置外键-----》从表

    create table ta_emp1(
    id int(11) primary key auto_increment,name varchar(22),deptid int(11),consreaint fk_emp_dept1 foreign key(deptid) references ta_dept1(id),)

  • 非空约束
    非空约束----》字段中的值不能为空
    格式:
    字段名 数据类型 not null
    create table second(id int(11) not null,name varchar(22),age int(22));

  • 唯一约束
    唯一约束的要求----唯一(允许为空(只能出现一次))

    作用:
    保证一列或者多列的值唯一

    格式:
    字段名 数据类型 unique

    unique和primary key之间的区别:
    一个表可以有多个字段设置为唯一约束,但是只有一个字段声明为主键
    主键不允许为空,但是unique可以为空

  • 默认约束
    默认约束—》指定某一列的默认值
    语法:
    字段名 数据类型 default 默认值
    create table pid(id INT(11) primary key auto_increment,name varchar(25),pid int(33) defalut 1111);

修改数据表

查看表详细信息:desc 表名

  1. 修改表名
    方式一:
    alter table 旧名字 rename 新名字
    方式二:
    rename table 旧名字 to 新名字
  2. 修改字段的数据类型
    alter table 表名 modify 字段名 数据类型
  3. 修改字段
    alter table 表名 change 旧字段名 新字段名 数据类型
  4. 添加字段
    alter table 表名 add 新字段名 数据类型 +[first / after 字段名]
    first:添加到最前面
    after 字段名:添加到指定字段名后面
  5. 删除字段
    alter table 表名 drop 字段名
  6. 删除表的外键约束
    alter table 表名 drop foreign key 外键约束的名字

你可能感兴趣的:(数据库)