数据库:把大量数据保存起来,通过计算机加工合成的可以高效访问的数据集合,即长期储存在计算机内、有组织的、可共享的数据集合
常见数据库:Oracle Database 甲骨文公司
SQL Server 微软公司
DB2 IBM公司
PostgreSQL 开源
MySQL 开源
Access 微软
基本SQL语法:首先在phpstudy打开 cmd,输入mysql -u root -p连接数据库
新建数据库:create database db_name;(SQL语句结尾要有英文分号)
查看所有数据库:show databases;
删除数据库:drop database db_name;
使用数据库:use db_name;
eg:
数据表操作:创建数据表:create table table_name(column_name column_type,... );
查看所有数据表:show tables;
删除表格:drop table table_name;
查看表的类型:desc table_name;
删除表里的字段:alter table table_name drop i;
添加表中的字段:alter table table_name add 字段名 字段数据类型;
修改字段:alter table table_name change 字段名 新字段名 字段类型;
数据类型varchar(255) char int float
字段存在一些属性:主键PRIMARY KEY(不为空且唯一 ,标识作用)
自增长AUTO_INCREMENT
数据不为空NOT NULL
设置编码CHARSET = utf8
插入数据:insert into table_name (字段名)value(对应字段名的数据,逗号间隔);
查询当前库名:select database();
修改数据:update table_name set 【col_name = value】【 where 字段=字段值;】
Eg. update 【class】 set 【age = gender】 【where number = 20】;
【】内根据要修改的内容而确定
删除语句:delete from table_name where 字段=字段值;
查询数据:select * from table_name;
select 字段名 from table_name;
select * from table_name where 字段=字段值
select * from table_name order by 字段 【ASC默认/DESC 倒序】;已知字段
数字;未知字段
select * from table_name limit n,m;从第n行取m条
select * from table_name where 字段名 like ‘% 内容 %’;模糊查询
‘内容 %’ 指结尾可以有任意字符,和 ‘% 内容 %’不同
不用百分号 相当于 =
"%" 百分号通配符: 表示任何字符出现任意次数 (可以是0次)
select * from class where name = ‘’ and sleep(2);sleep()函数
注意:数据区分大小写,表名 字段名 操作语句不区分大小写
SQL语句可以使用16进制
判断条件里可以进行数字运算、逻辑运算(逻辑运算符 not(!)、and(&&)、or(||)
联合查询:将两个查询的结果在一张表中现实出来,要求两次查询的字段数相同
结果表的内容无重复:select * from table_name 1 union select * from table_name2;
结果表有重复内容:select * from table_name1 union all select * from table_name2;
子查询:select-SQL语言中嵌套查询下层的程序模块,当一个查询是另一个查询的条件时,称之为子查询。即优先执行某个语句,然后将执行得到的结果作为某个查询的条件
Eg:
① select * from user where username=(select username from admin where id=1);
Admin表当id = 1的用户名是否也在user表里存在
② select * from user where username in (select username from admin);
检查admin表和user表是否有用户名相同
常见函数:
Group_concat(col):将group by产生的同一个分组中的值连接起来,返回一个字符串结果。首 先根据group by指定的列进行分组,将同一组的列显示出来,并且用分隔符分隔。由 函数参数(字段名)决定要返回的列
Ascll(char):返回字符的ASCII码值
Database():返回当前数据库名
User()或system_user():返回当前登录用户名
Version():返回MySQL服务器的版本
Sleep(n):休眠n秒