MySQL创建和管理表

创建数据库
        ·创建一个保存员工信息的数据库

create database employees;


        ·相关其他命令

show databases; 查看当前所有数据库
use employees; "使用"一个数据库,使其作为为当前数据库

命名规则
            ·数据库名不得超过30个字符,变量名限制为29个
            ·必须只能包含 A-Z, a-z, 0-9, _共63个字符
            ·不能在对象名的字符间留空格
            ·必须不能和用户定义的其他对象重名
            ·必须保证你的字段没有保留字、数据库系统或常用方法冲突
            ·保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里就不要变成字符型了
            
        CREATE TABLE 语句
            ·必须具备:
                ·CREATE TABLE权限
                ·储存空间

create table [schema.]table
                       (column datatype [default expr][, ...]);

            ·必须指定:
                    ·表名
                    ·列名,数据类型,尺寸
    
    创建表
        ·语法

create table dept
              (deptno int(2),
               dname varchar(14),
               loc varchar(13));

 table created.

  ·确认

describe dept

    使用子查询创建表
        ·使用AS subquery选项,将创建表和插入数据结合起来

create table table
        [(column,column...)]
         as subquery;


        ·指定的列和子查询中的列要一一对应
        ·通过列明和默认值定义列
        
        ·使用子查询创建表
            ·复制现有的表:

create table emp1 as select * from employees;
create table emp2 as select * from employees where 1 = 2;


            -- 创建的emp2是空表。
            ·使用子查询创建表举例
                
    ALTER TABLE 语句
        使用ALTER TABLE 语句可以实现:
            ·向已有的表中添加列
            ·修改现有表中的列
            ·删除现有表中的列
            ·重命名现有表中的列
            
        追加一个新列

alter table dept80
add job_id varchar(15);


       修改一个列
            ·可以修改列的数据类型,尺寸和默认值

alter table dept80
modify (last_name varchar(30));

 Table altered.

alter table dept80
 modify (salary double(9,2) default 1000);

 Table altered.

        重命名一个列
            ·使用CHANGE old_column new_column dataType 子句重命名列

alter table dept80
change department_name dept_name varchar(15);

 Table altered.

          删除一个列
            ·使用DROP COLUMN 子句删除不在需要的列

alter table dept80
drop column job_id;

 Table altered.

    改变对象的名称
            ·执行RENAME语句改变表,视图的名称

alter table dept
rename to detail_dept;

Table renamed. 

          ·必须是对象的拥有者
            
    删除表
        ·数据和结构都被删除
        ·所有正在运行的相关事务被提交
        ·所有相关索引被删除
        ·DROP TABLE 语句不能回滚

drop table dept80;

Table dropped. 

    清空表
        ·TRUNCATE TABLE 语句:
            ·删除表中所有的数据
            ·释放表中的存储空间

truncate table detail_dept;

 Table truncated.

        ·TRUNCATE 语句不能回滚
        ·可以使用 DELETE 语句删除数据,可以回滚
        ·对比:
 

set autocommit = false;
delete from emp2;
select * from emp2;
rollback;
select * from emp2;

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