博客列表 >MySQL DDL命令大全(数据定义语言)

MySQL DDL命令大全(数据定义语言)

州爱殇
州爱殇原创
2021年08月19日 23:44:512952浏览

一:1.mysql 数据库常用DDL语言:

数据定义语言:即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,常用的语句关键字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。
关于数据库语言分类参考下图:

*注意:CMD命令行使用mysql命令首先需要配置系统的环境变量。具体怎么配置自行百度:(就是把你安装的mysql.exe的安装路径添加到系统的环境变量Path中去)。

A:数据库操作

1.查看当前服务器下全部数据库 :
SHOW DATABASES|SCHEMAS;

  1. show databases; //数据库命令以分号结束
  2. +--------------------+
  3. | Database |
  4. +--------------------+
  5. | information_schema |
  6. | learngit |
  7. | mysql |
  8. | performance_schema |
  9. | sys |
  10. +--------------------+
  11. 5 rows in set (0.00 sec)

2.查看指定数据库的详细信息:
SHOW CREATE DATABASE db_name;

show create database phpcn1; //命令语句
执行结果

*注意:这条命令和查看数据库命令的区别:database与databases;仅差一个字母S注意不要写错!!!

3.切换数据库:USE db_name;

  1. use mysql; //切换sql命令
  2. No connection. Trying to reconnect... //切换结果
  3. Connection id: 7
  4. Current database: *** NONE ***

4.创建数据库 :
CREATE {DATABASE|SCHEMA} db_name;
检测数据库是否存在,不存在则创建
create database if not exists 数据库名
注意:
a.数据库名称最好有意义
b.名称不要包含特殊字符或者是MySQL关键字
create database if not exists phpcn;

创建成功提示:Query OK, 1 row affected (0.00 sec)

5.删除数据库 DROP DATABASE db_name;

如果数据库存在则删除 drop databasae if exists db_name;

  1. mysql> drop database phpcn2; //删除命令
  2. Query OK, 0 rows affected (0.00 sec) //结果

6.修改指定数据库的编码方式
ALTER DATABASE db_name [DEFAULT] CHARACTER SET [=] charset;

  1. mysql> alter database phpcn character set gbk;
  2. Query OK, 1 row affected (0.00 sec)

7.得到当前打开的数据库:
SELECT DATABASE()|SCHEMA();

  1. mysql> select database();
  2. +------------+
  3. | database() |
  4. +------------+
  5. | phpcn1 |
  6. +------------+
  7. 1 row in set (0.00 sec)

B. mysql 数据库常用DML语言:数据定义语言

即数据操纵语句,用来查询、添加、更新、删除等,常用的语句关键字有:SELECT,INSERT,UPDATE,DELETE,MERGE,CALL,EXPLAIN PLAN,LOCK TABLE,包括通用性的增删改查。
1.创建表

  1. CREATE TABLE [IF NOT EXISTS] tbl_name(
  2. 字段名称 字段类型 [完整性约束条件],
  3. 字段名称 字段类型 [完整性约束条件],
  4. ...
  5. )ENGINE=存储引擎 CHARSET=编码方式;
  1. Eg: mysql> CREATE TABLE `users` (
  2. -> `id` int(10) NOT NULL,
  3. -> `name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  4. -> `password` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  5. -> PRIMARY KEY (`id`)
  6. -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  7. Query OK, 0 rows affected (0.06 sec)

2.查看当前数据库存在的表:show tables
Eg:

  1. mysql> show tables;
  2. +------------------+
  3. | Tables_in_phpcn1 |
  4. +------------------+
  5. | users |
  6. +------------------+
  7. 1 row in set (0.00 sec)

3.查看指定数据表的详细信息
SHOW CREATE TABLE tbl_name;

  1. mysql> show create table users
  2. -> ;
  3. +-------+-------------------------+
  4. | Table | Create Table
  5. +-------+------------------------------------+
  6. | users | CREATE TABLE `users` (
  7. `id` int(10) NOT NULL,
  8. `name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  9. `password` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  10. PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |

4.查看表结构

  1. DESC tbl_name;
  2. DESCRIBE tbl_name;
  3. DESCRIBE tbl_name;

5.删除指定的数据表
DROP TABLE [IF EXISTS] tbl_name;

6.表结构相关操作
(1).添加字段
ALTER TABLE tbl_name ADD 字段名称 字段属性 [完整性约束条件] [FIRST|AFTER 字段名称]

  1. mysql> alter table users add gender varchar(20);
  2. Query OK, 0 rows affected (0.45 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0

(2).删除字段: ALTER TABLE tbl_name DROP 字段名称

  1. mysql> alter table users drop gender ;
  2. Query OK, 0 rows affected (0.45 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0

(3).添加默认值:
ALTER TABLE tbl_name ALTER 字段名称 SET DEFAULT 默认值;
(4).删除默认值:
ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT
(5).修改字段类型、字段属性
ALTER TABLE tbl_name MODIFY 字段名称 字段类型 [字段属性] [FIRST | AFTER 字段名称]
(6).修改字段名称、字段类型、字段属性
ALTER TABLE tbl_name CHANGE 原字段名称 新字段名称 字段类型 字段属性 [FIRST | AFTER 字段名称]
(7).添加主键
ALTER TABLE tbl_name ADD PRIMARY KEY(字段名称)
(8).删除主键:
ALTER TABLE tbl_name DROP PRIMARY KEY;
(9).添加唯一:
ALTER TABLE tbl_name ADD UNIQUE KEY|INDEX [index_name] (字段名称)
(10).删除唯一:
ALTER TABLE tbl_name DROP index_name;

(11).修改数据表名称:
ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name

RENAME TABLE tbl_name TO new_tbl_name;
(12).修改AUTO_INCREMENT的值
ALTER TABLE tbl_name AUTO_INCREMENT=值

7.查看生成表的sql语句:
show create table student;
8.插入数据
insert into 表名 (字段1, 字段2, 字段3…) values(值1, 值2, 值3…);

insert into 表名 values(值1, 值2, 值3…..); //此方法必须插入表中所有字段的值,并一一对应;

insert into 表名 values(值1, 值2, 值3…), (值1, 值2, 值3…),…(值1, 值2, 值3…); //此方法可以插入多条数据 

9.update 更新,修改数据;
update 表名 set 字段名=新的值 (where 条件); //不加条件会修改所有指定字段的值,可以通过where确定修改指定记录
2.delete 删除数据;
delete from 表名 (where 条件); //此方法删除数据在不加条件时会删除所有的数据,可以通过where确定删除指定记录

truncate table table_name同样可以实现清除表中所有的数据,

虽然TRUNCATE和DELETE都可以删除表的所有记录,但有原理不同。DELETE的效率没有TRUNCATE高!

TRUNCATE其实属性DDL语句,因为它是先DROP TABLE,再CREATE TABLE。而且TRUNCATE删除的记录是无法回滚的,但DELETE删除的记录是可以回滚的(回滚是事务的知识!)。

use在命名空间中的作用:

  1. use 引入别的命名空间到当前空间 as 为引过来的命名空间起别名
    示例文件都在demo.php中;
  1. namespace app\admin\controller;
  2. class Index{
  3. public function index(){
  4. return __METHOD__;
  5. }
  6. }
  7. namespace extend\lib;
  8. //.use 导入命名空间
  9. use app\admin\controller; // 正常引用
  10. echo (new controller\index) ->index();
  11. echo "<hr>";
  12. //use引用 as定义别名
  13. /*成功导入命名空间以后 就可以不使用类的完全限定名称 来调用类元素*/
  14. use app\admin\controller as test;
  15. echo (new test\Index)->index();
  16. echo "<hr>";
  17. //引用空间中的类 并定义别名
  18. use app\admin\controller\Index as test2;
  19. echo (new test2)->index();

2.实现自动加载带有命名空间的类

  1. demo.php 中代码
  2. namespace app;
  3. // 引入类的自动加载器 只是加载类文件
  4. require 'app/admin/autoload.php';
  5. // 起别名
  6. use app\admin\controller\Login;
  7. use app\admin\controller\User;
  8. use app\admin\model\Login as LoginModel;
  9. use app\admin\model\User as UserModel;
  10. $loginController = new Login;
  11. $loginModel = new LoginModel;
  12. $UserModel = new UserModel;
  13. $userController = new User;
  14. echo $userController->index();
  1. autoload.php 自动加载类文件
  2. spl_autoload_register(function($className){
  3. // 先检查要加载的类
  4. // echo $className.'<hr>';
  5. // 将类的命名空间与类文件所在的路径保持一一映射
  6. $file = str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';
  7. // echo $file;
  8. if(!(is_file($file) && file_exists($file)))
  9. {
  10. throw new \Exception('文件名不合法或者不存在');
  11. }
  12. // require $file;
  13. require $className.'.php';
  14. });
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议