Tips 环境搭建 Mysql Att@ckxu 2025-05-27 2025-05-29 数据库相关知识 结构化信息或数据的有组织的集合,通常有数据库管理系统(DBMS)来控制
大多数数据库使用结构化查询语言(SQL)来编写和查询数据
简单来说就是存放数据的仓库
整个数据库系统可以包含多个数据库,一个数据库可以包含多个数据表,一个数据表可以有多个列(字段)
连接数据库方法
MySQL命令行(cmd中执行mysql -uroot -p)
使用数据库连接软件(例如phpstudy自带的MySQL-Front、Navicat、phpMyAdmin等)
php连接数据库(写php代码来进行连接操作)
数据库操作 增 向数据库中插入数据
插入单条数据 insert into 表名(字段1 ,字段2 ,.......)values (值1 ,值2 ,.......); 插入多条数据 insert into 表名 (字段1 ,字段2 ,.......) values (值1 ,值2 ,.......), (值11 ,值12 ,.......), (值21 ,值22 ,.......); 举例 insert into guestbook(comment,name) values ("111","222"); / / 向guestbook表中的comment列和name列分别插入111 和222
删 delete from 表名 where 条件;举例 delete from guestbook where comment_id= 2 ;/ / 删除guestbook表中comment_id列的值为2 的数据
改 update 表名 set 字段名= "值" [where 条件];where 为可选项,使用where 时只会修改满足where 条件的行,不加where 会将该列所有的值修改举例 update guestbook set comment= "333";/ / 将guestbook数据表中的comment列的所有值改为333 update guestbook set comment= "666" where comment_id= 2 ;/ / 将guestbook表中的comment_id列的值为2 的comment的值改为666
查 select * from 表名;select * / 字段 from 表名 [where 条件];show databases use 数据库名 show tables
order by SELECT * FROM 表名 ORDER BY 列名(字段名) [ASC | DESC ];ASC 表示升序,为默认值,DESC 表示降序当order by 后的数字大于当前列数,会报错
LIMIT限制 用于限制select语句返回指定的记录数
SELECT * FROM 表名 LIMIT 偏移量,限制条数;举例 LIMIT 5 ; LIMIT 1 ,5 select * from users limit 3 ,5 ; select * from users limit 0 ,1 ;
MySQL注释
注释符可以替换为空格 select id,username,passwordfrom userslimit0 ,3 ;中的内容被注释掉了,可以用其代替空格 当空格被过滤时可以进行绕过
内联注释 在mysql中是多行注释 但是如果里面加了! 那么后面的内容会被执行 举例 select * from limit0 ,3 ;
单行注释加换行 单行注释加换行也可以执行
系统数据库 MySQL5.0以上自带information_schema这个数据库,5.0以下没有
information_schema是一个信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息
- SCHEMATA 表:提供了当前mysql实例中所有数据库的信息。 show databases; 的结果取之此表。 - TABLES 表:提供了关于数据库中的表的信息。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。 show tables from schemaname; (schemaname为指定数据库名)的结果取之此表。 - COLUMNS 表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。 show columns from schemaname.tablename; (schemaname为指定数据库名, tablename为指定数据库下的数据表名)的结果取之此表。
查询数据库名 select schema_name from information_schema.schemata;
查询某个数据库下的表名 select table_name from information_schema.tables where table_schema= 'security' ;
查询某个数据库下某个表的列名 select column_name from information_schema.columns where table_schema= 'security' and table_name= 'users' ;
查询表中的具体内容 select * from security.users;
PHP操作数据库 连接 <?php header ("Content-Type: text/html;charset=utf-8" );$servername = "localhost" ;$username = "root" ;$password = "root" ;$conn = mysqli_connect ($servername , $username , $password );if (!$conn ) { die ("Connection failed: " . mysqli_connect_error ()); } echo "连接成功" ;?>
查询 <?php header ("Content-Type: text/html;charset=utf-8" ); $servername = "localhost" ; $username = "root" ; $password = "root" ; $conn = mysql_connect ($servername , $username , $password ); mysql_select_db ('security' ); if (isset ($_GET ['id' ])){ $id = $_GET ['id' ]; $sql = "select * from users where id = $id " ; $result = mysql_query ($sql ); $row = mysql_fetch_array ($result ); if ($row ) { echo 'Your Login name:' . $row ['username' ]; echo "<br>" ; echo 'Your Password:' .$row ['password' ]; echo "</font>" ; } else { echo '<font color= "#FFFF00">' ; print_r (mysql_error ()); echo "</font>" ; } } ?>