zoukankan      html  css  js  c++  java
  • SQL数据库的操作,表的操作

    数据库定义语言(DDL):用于对数据库及数据库中的各种对象进行创建,删除,修改等操作

    (1)create:用于创建数据库或数据库对象

    (2)alter:用于对数据库或数据库对象进行修改

    (3)drop:用于删除数据库或数据库对象

    1.创建数据库

    在MySQL中可以使用 create database 或 create schema语句创建数据库

    create  database 或 schema [ if not exists ]  数据库名

    if not exists :如果不存在

    create database testsql

    2.选择数据库

    在MySQL中,使用  use  语句可以实现从一个数据库跳转到另一个数据库

    use 数据库名

    3.修改数据库

    在MySQL中,可以使用  alterdatabase 或 alter schema 来修改已被创建的数据库相关参数

    alter  database|schema 数据库名

    4.删除数据库

    在MySQL中,当需要删除已创建的数据库时,可使用 drop database 或 drop schema

    drop database|schema [ if exists]数据库名

    5.查看数据库

    在MySQL中,可使用 show databases 或 show schema语句查看可用数据库

    show database|schema

    二,表

    1,创建表

    用 create table 语句创建表

    语句基本格式

    create table 表名

    字段名1 数据类型  [列级完整性约束条件] [默认值],

    字段名2 数据类型  [列级完整性约束条件] [默认值],

    .........

    [表级完整性约束条件]

    (1)临时表和持久表

    create temporary table :创建的是临时表并且临时表的生命周期短,而且只对创建它的用户可见,当断开与该数据库的连接时,MySQL会自动删除它们。

    如果没有 temporary创建的是持久表,持久表一旦创建,则一直存在。

    (2)数据类型

    数据类型指系统中所允许的数据的类型

    (3)关键字 auto_increment 

    使用关键字 auto_increment 可以为表中数据类型为  整型 的列 设置自增属性,每个表中只能有一个 auto_increment列并且它必须被索引。

    另外,当一个表列被指定为 auto_increment 后,其值是可以被覆盖的,即可以简单地在表数据插入语句(insert) 中为该列指定一个值,

    只要该值是唯一的(尚未使用的),那么这个值将被用来替代系统自动生成的值,并且后续的增量将基于该手工插入的值。

    (4)指定默认值

    默认值指在向表插入数据时,如果没有明确给出某个列对应的值,则 DBMS   允许为此表列指定一个值,使用 default 来指定

    (5)null 值

    null 值是指没有值或缺值,

    null 为默认设置,如果不指定 not null ,则认为指定的是 null

    (6)主键

    主键是通过 primary key 来指定。主键值必须是唯一,而且主键一定要为 not null

     2,更新表

     在MySQL中可以使用 alter table 语句来更改原有表的结构

    (1)add [column]子句

    如果需要向表中增加新列,可在 alter table 语句中 添加 add [column] 子句来实现,且其可同时向表中增加多个列

    例子中通过关键字 ‘after’在原表 sex 之后添加一个新列,也可以通过关键字 first 将新列作为原表的第一列,若不指定这两个关键字,则新列会添加到原表的最后

    类似的可以在 alter table 语句中通过使用 addprimary key 子句,add foreign key子句,add index 子句为原表添加一个主键,外键和索引

     (2)change [column]子句

    如若需要修改表中列的名称或数据类型,可在 alter table 语句中添加 change [column]子句。

    change [column]子句可同时修改表中指定列的名称和数据类型,且在 alter table中可以同时放入多个 change[column] 子句只需要用逗号分隔

    需要注意的是:如果将原有的数据类型更换成另外一种类型,可能会丢失该列原有的数据,

    如果试图改变的数据类型与原有数据类型不兼容,SQL命令不会被执行,在兼容的情况下数据可能被截断

    (3)alter [column]子句

    如若需要修改或删除表中指定列的默认值,则可在 alter table中 添加 alter [column]子句

    (4)modify [column]

    modify [column]子句只会修改指定列的数据类型,另外还可以通过关键字 first 或 after 修改指定列在表中的位置

    (5)drop [column]

    在 alter table 语句中添加 drop [column]子句来完成删除多余列的操作

    一旦删除列,原本存储在该列中的一切内容都会跟着被删除

    (6)rename [to]子句

    在 alter table 语句中,可以添加 rename [to] 子句为表重新赋予一个表名

    3,重命名表

    可以直接使用 rename table 语句来更改表的名字,并可同时重命名多个表

    rename table 旧表名 to 新表名

    4,删除表

    如果删除一个已经存在的表,可以通过使用 drop table 语句来实现

    drop table [if exists] 表名

    drop table语句可以同时删除多个表(包括临时表),但是操作者必须拥有该命令的权限;

    当表被删除时,其中存储的数据和分区信息均会被删除

    5,查看表

    (1)显示表的名称

    可以使用 show tables 语句来显示指定数据库中存放的所有表名

    show [full] tables [{from|in} db_name]

    (2)显示表的结构

    show columns from 表名

    可以使用 desc 或者 describe 作为show columns from的一种快捷方式

  • 相关阅读:
    定理环境
    tcolorbox 宏包简明教程
    【专访】南科大数学系何炳生教授——四十年上下求索
    研究生导师为什么喜欢问学生家境?
    高德纳谈《具体数学》的诞生
    剑桥大学
    线性代数
    APPCAN的mas服务报错
    github删除仓库
    Angular2入门教程-2 实现TodoList App
  • 原文地址:https://www.cnblogs.com/cyq0528/p/10288892.html
Copyright © 2011-2022 走看看