批改状态:合格
老师批语:
数据定义语言:即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,常用的语句关键字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。
关于数据库语言分类参考下图:
*注意:CMD命令行使用mysql命令首先需要配置系统的环境变量。具体怎么配置自行百度:(就是把你安装的mysql.exe的安装路径添加到系统的环境变量Path中去)。
1.查看当前服务器下全部数据库 :SHOW DATABASES|SCHEMAS;
show databases; //数据库命令以分号结束+--------------------+| Database |+--------------------+| information_schema || learngit || mysql || performance_schema || sys |+--------------------+5 rows in set (0.00 sec)
2.查看指定数据库的详细信息:SHOW CREATE DATABASE db_name;
show create database phpcn1; //命令语句执行结果
*注意:这条命令和查看数据库命令的区别:database与databases;仅差一个字母S注意不要写错!!!
3.切换数据库:USE db_name;
use mysql; //切换sql命令No connection. Trying to reconnect... //切换结果Connection id: 7Current 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;
mysql> drop database phpcn2; //删除命令Query OK, 0 rows affected (0.00 sec) //结果
6.修改指定数据库的编码方式ALTER DATABASE db_name [DEFAULT] CHARACTER SET [=] charset;
mysql> alter database phpcn character set gbk;Query OK, 1 row affected (0.00 sec)
7.得到当前打开的数据库:SELECT DATABASE()|SCHEMA();
mysql> select database();+------------+| database() |+------------+| phpcn1 |+------------+1 row in set (0.00 sec)
即数据操纵语句,用来查询、添加、更新、删除等,常用的语句关键字有:SELECT,INSERT,UPDATE,DELETE,MERGE,CALL,EXPLAIN PLAN,LOCK TABLE,包括通用性的增删改查。
1.创建表
CREATE TABLE [IF NOT EXISTS] tbl_name(字段名称 字段类型 [完整性约束条件],字段名称 字段类型 [完整性约束条件],...)ENGINE=存储引擎 CHARSET=编码方式;
Eg: mysql> CREATE TABLE `users` (-> `id` int(10) NOT NULL,-> `name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,-> `password` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,-> PRIMARY KEY (`id`)-> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;Query OK, 0 rows affected (0.06 sec)
2.查看当前数据库存在的表:show tables
Eg:
mysql> show tables;+------------------+| Tables_in_phpcn1 |+------------------+| users |+------------------+1 row in set (0.00 sec)
3.查看指定数据表的详细信息SHOW CREATE TABLE tbl_name;
mysql> show create table users-> ;+-------+-------------------------+| Table | Create Table+-------+------------------------------------+| users | CREATE TABLE `users` (`id` int(10) NOT NULL,`name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,`password` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
4.查看表结构
DESC tbl_name;DESCRIBE tbl_name;DESCRIBE tbl_name;
5.删除指定的数据表DROP TABLE [IF EXISTS] tbl_name;
6.表结构相关操作
(1).添加字段ALTER TABLE tbl_name
ADD 字段名称 字段属性 [完整性约束条件] [FIRST|AFTER 字段名称]
mysql> alter table users add gender varchar(20);Query OK, 0 rows affected (0.45 sec)Records: 0 Duplicates: 0 Warnings: 0
(2).删除字段: ALTER TABLE tbl_name
DROP 字段名称
mysql> alter table users drop gender ;Query OK, 0 rows affected (0.45 sec)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删除的记录是可以回滚的(回滚是事务的知识!)。
namespace app\admin\controller;class Index{public function index(){return __METHOD__;}}namespace extend\lib;//.use 导入命名空间use app\admin\controller; // 正常引用echo (new controller\index) ->index();echo "<hr>";//use引用 as定义别名/*成功导入命名空间以后 就可以不使用类的完全限定名称 来调用类元素*/use app\admin\controller as test;echo (new test\Index)->index();echo "<hr>";//引用空间中的类 并定义别名use app\admin\controller\Index as test2;echo (new test2)->index();
2.实现自动加载带有命名空间的类
demo.php 中代码namespace app;// 引入类的自动加载器 只是加载类文件require 'app/admin/autoload.php';// 起别名use app\admin\controller\Login;use app\admin\controller\User;use app\admin\model\Login as LoginModel;use app\admin\model\User as UserModel;$loginController = new Login;$loginModel = new LoginModel;$UserModel = new UserModel;$userController = new User;echo $userController->index();
autoload.php 自动加载类文件spl_autoload_register(function($className){// 先检查要加载的类// echo $className.'<hr>';// 将类的命名空间与类文件所在的路径保持一一映射$file = str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';// echo $file;if(!(is_file($file) && file_exists($file))){throw new \Exception('文件名不合法或者不存在');}// require $file;require $className.'.php';});
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号