• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL数据库、表的管理,数据库的增删改查

MySQL数据库、表的管理,数据库的增删改查

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了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));
确认
DESCRIBE dept
常用数据类型
INT 使用4个字节保存整数数据
CHAR(size) 定长字符数据。若未指定,默认为1个字符,最大长度255
VARCHAR(size) 可变长字符数据,根据字符串实际长度保存,必须指定长度
FLOAT(M,D) 单精度,M=整数位+小数位,D=小数位。 D<=M<=255,0<=D<=30,默认M+D<=6
DOUBLE(M,D) 双精度。D<=M<=255,0<=D<=30,默认M+D<=15
DATE 日期型数据,格式’YYYY-MM-DD’
BLOB 二进制形式的长文本数据,最大可达4G
TEXT 长文本数据,最大可达4G

**创建表**
CREATE TABLE emp (  
    #int类型,自增  
    emp_id INT AUTO_INCREMENT,  
    #最多保存20个中英文字符  
    emp_name CHAR (20),  
    #总位数不超过15位  
    salary DOUBLE,  
    #日期类型  
    birthday DATE,  
    #主键  
    PRIMARY KEY (emp_id)
) ;

使用子查询创建表
使用 AS subquery 选项,将创建表和插入数据结合起来
指定的列和子查询中的列要一一对应
通过列名和默认值定义列

CREATE TABLE table        
        [(column, column...)]    AS subquery;

使用子查询创建表举例

CREATE TABLE    dept80  
        AS     
            SELECT  employee_id, last_name,            
            salary*12 ANNSAL,             hire_date    
            FROM    employees    
            WHERE   department_id = 80;

ALTER TABLE 语句
使用 ALTER TABLE 语句可以实现:
向已有的表中添加列

ALTER TABLE dept80 
        ADD job_id varchar(15);`
**修改现有表中的列**
可以修改列的数据类型, 尺寸和默认值
对默认值的修改只影响今后对表的修改
``ALTER TABLE dept80
                MODIFY      (last_name VARCHAR(30));
        ALTER TABLE dept80
            MODIFY      (salary double(9,2) default 1000);

丢弃现有表中的列
使用 DROP COLUMN 子句丢弃不再需要的列.

    ALTER TABLE  dept80            DROP COLUMN  job_id;

重命名现有表中的列
使用 CHANGE old_column new_column dataType子句重命名列

        ALTER TABLE  dept80
        *CHANGE department_name dept_name varchar(15);

丢弃表*
数据和结构都被删除
所有正在运行的相关事务被提交
所有相关索引被删除
DROP TABLE 语句不能回滚
DROP TABLE dept80;
清空表
TRUNCATE TABLE 语句:
删除表中所有的数据
释放表的存储空间
TRUNCATE TABLE detail_dept;
TRUNCATE语句不能回滚
可以使用 DELETE 语句删除数据,可以回滚
对比:
delete from emp2;
select * from emp2;
rollback;
select * from emp2;
改变对象的名称
执行RENAME语句改变表, 视图的名称
必须是对象的拥有者
ALTER table dept
RENAME TO detail_dept;

数据处理之增删改

数据操纵语言
DML(Data Manipulation Language – 数据操纵语言) 可以在下列条件下执行:
向表中插入数据
修改现存数据
删除现存数据
事务是由完成若干项工作的DML语句组成的

插入数据

    使用 INSERT 语句向表中插入数据。
        INSERT INTO table [(column [, column...])]
        VALUES      (value [, value...]);
    为每一列添加一个新值。
    按列的默认顺序列出各个列的值。 
    在 INSERT 子句中随意列出列名和他们的值。
    字符和日期型数据应包含在单引号中。
INSERT INTO departments(department_id,                  department_name,                   
    manager_id, 
    location_id)            VALUES      (70, 'Public Relations', 100, 1700);
        INSERT INTO employees(employee_id,last_name,email,hire_date,job_id)

向表中插入空值
隐式方式: 在列名表中省略该列的值。
INSERT INTO departments (department_id, department_name )
VALUES (30, ‘Purchasing’);
显示方式: 在VALUES 子句中指定空值。
INSERT INTO departments
VALUES (100, ‘Finance’, NULL, NULL);
插入指定的值
NOW()函数:记录当前系统的日期和时间。
INSERT INTO employees (employee_id,
first_name, last_name,
email, phone_number,
hire_date, job_id, salary,
commission_pct, manager_id,
department_id)
VALUES (113,
‘Louis’, ‘Popp’,
‘LPOPP’, ‘515.124.4567’,
NOW(), ‘AC_ACCOUNT’, 6900,
NULL, 205, 100);
从其它表中拷贝数据
在 INSERT 语句中加入子查询。
不必书写 VALUES 子句。
子查询中的值列表应与 INSERT 子句中的列名对应

        INSERT INTO emp2 
        SELECT * 
        FROM employees
        WHERE department_id = 90;

        INSERT INTO sales_reps(id, name, salary, commission_pct)
        SELECT employee_id, last_name, salary, commission_pct
        FROM   employees
        WHERE  job_id LIKE '%REP%';

*更新数据*

    UPDATE 语句语法
    使用 UPDATE 语句更新数据。

        UPDATE      table
        SET     column = value [, column = value, ...]
        [WHERE      condition];

可以一次更新多条数据。
如果需要回滚数据,需要保证在DML前,进行设置:SET AUTOCOMMIT = FALSE;
使用 WHERE 子句指定需要更新的数据。

        UPDATE employees
        SET    department_id = 70
        WHERE  employee_id = 113;

如果省略 WHERE 子句,则表中的所有数据都将被更新。
UPDATE copy_emp
SET department_id = 110;

更新中的数据完整性错误

    UPDATE employees
    SET    department_id = 55
    WHERE  department_id = 110;     
    不存在 55 号部门

删除数据

    使用 DELETE 语句从表中删除数据。


  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2017-05-11Java实现获得MySQL数据库中所有表的记录总数可行方法
  • 2018-12-05SQL Server 7.0 入门(二)
  • 2017-08-07mysql 增加和删除用户的访问权限和删除
  • 2018-12-05连接池配置的10篇内容推荐
  • 2018-12-05ORA-00600: internal error code, arguments: [kqlnrc_1], [0x70
  • 2017-05-11MySQL无法启动、无法停止解决方法(安全设置后容易出现)
  • 2018-12-05SQLSERVER 表分区操作和设计方法
  • 2018-12-05Starting MySQL.Manager of pid-file quit without updating fil
  • 2018-12-05SQL点滴24 监测表的变化
  • 2017-05-11MySQL 服务器参数说明及查看 设置方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL数据库锁定机制的介绍
    • sqlserver 比较两个表的列
    • 总结sql语句技巧实例用法
    • MySQL配置文件my.cnf中文版对照
    • 动态SQL语句使用心得
    • MySQL 字符串函数大全
    • MySQL 建表的优化策略 小结
    • mysql 显示SQL语句执行时间的代码
    • 命令行查询实例用法汇总
    • 解析mysql中常用的三种插入语句及其区别

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有