mysql笔记
sql类型
TEXT:备注大文章,帖子,新闻内容
VARCHAR:用户名,文章标题
CHAR:密码,性别(访问速度快)
SHOW DATABASES; //查看全部数据库
USE 数据库; //选择操作的数据库,这样才能对数据库的表进行操作
SELECT DATABASE(); //查看当前选中的哪个数据库
SHOW TABLES; //查看当前选中数据库的表
SELECT * FROM 表名; //查看表名内容
SET NAMES GBK;//设置中文编码
CREATE DATABASE 库名;//创建一个库
CREATE TABLE 表名( //同时创建表,字段名
字段名 VARCHAR(20),
字段名 CHAR(1),
字段名 DATETIME);
DESCRIBE 表名//查看表结构
SELECT * FROM 表名 WHERE 字段名=’筛选内容’;//筛选指定条件的所有数据
DELETE * FROM 表名 WHERE 字段名=’筛选内容’;//删除筛选指定条件的所有数据
SELECT * FROM 表名 ORDER BY 时间的字段 DESC; //按照时间倒序排列数据(正序ASC)
DROP TABLE 表名; //删除表名
DROP DATABASE 库名; //删除库
UPDATE 表名 SET 字段名 =’修改的内容’ WHERE 主键字段=序号;//修改数据
插入数据
insert into 表 valus(‘值1′,’值2′,’值3’,..);//插入的值顺序是跟字段的顺序一样。
insert into 表(字段1,字段2,字段3,..) values (‘字段1值’,’字段2值’,’字段3值’,..)//对应
更新
update 表 set 字段=’修改内容’,字段=’修改内容’ where id=’根据ID找到要修改的那条数据’;
删除
delete from 表 where id=2;
mySQL函数
mySQL常用函数可以跟PHP配置操作数据库
文本函数
CONCAT() // SELECT CONCAT(‘Mrs.’,’chen’); 返回 Mrs.chen 字符窜相连功能
LENGTH() // SELECT LENGTH(‘chen’); 返回3 检测字符串长度
LEFT() // SELECT LEFT(‘Lee’,2) 返回Le ,返回字符串前两位内容
RIGHT() //同上
TRIM() // SELECT TRIM(‘ 123 ‘) AS TRIM; 删除多余的空格
SUBSTRING() //SELECT SUBSTRING(‘nihao 12’,2,5); 返回ihao ,索引是1,从第二个位置取5个包括第二个。
MD5() // MD5(‘123’)
数字函数
ABS() // SELECT ABS(-5) 负5绝对值返回5
ROUND() // ROUND(4.66) 返回5 四舍五入
FLOOR() //FLOOR(4,66) 返回4 只取整数
CEILING() // CEILING(4.01) 返回5 返回最大整数
RAND() //RAND()*10 0到10的随机数
———————————————
日期函数
最常用的是NOW()
日期格式
DATE_FORMAT()
SELECT DATE_FORMAT(NOW(),’%A:%D:%C’)


以下是兄弟连PHP教程记录
1,数字型
整形
TINYINT 1字节 (-128,127) (0,255) 小整数值
create table 表名(字段名 TINYINT);
create table 表名(字段名 TINYINT UNSIGNED); //创建无符号。
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
浮点(小数)
float(一共几位,保留几位小数) 4字节
create table 表名(字段名 float(5,2)); // 例如输出123.12
double()
decimal()
2,字符串类型
char(可自定义长度) 最长255 固定长度 //适用 性别,不管用不用都占用空间,但是运行速度快
varchar(可自定义长度) 最长255 可变长度 //适用文章标题不算长而又变化大的,智能删除末尾的空格节省空间,但降低性能
mediumtext
longtext //适用于文章日记。
enum(“值1″,”值2″,”值3”); //枚举 一个值只能用一次 适用于固定值,例如星期日期,男,女,保密
set(“值1″,”值2″,”值3″); //集合 一个值能多次
例如
values(‘a,b’,’a,b’) //枚举只能显示a 集合能显示a,b
3,日期型(创建表时最好不要用这些时间格式,在php程序中最好使用php自带的时间函数)
date 0000-00-00
time 00:00:00
datetime 0000-00-00 00:00:00
timestamp 0000-00-00 00:00:00
year 0000
字段附加属性
1, unsigned 无符号 只能用在数值型
2, zerofill 只能用在数值型 例如 (a int(5) zerofill) values(88) //输出是00088 ,会自动加unsigned
3, auto_increment 只能是整数 每增加一天数据 就自动加1 ,即使原来最大值的删除了继续往后面追加,例如100删除如果还要继续加就是101,每个表最好有一个ID自动增长的。
4, null和not null 字段默认是null,如果不设置值字段就显示空;如果设置not null不给只就自动赋值0,(推荐给每个字段设置not null)
5, default 设置默认值,没给字段设置值的时候就显示默认值(推荐和not null配合使用)
例子:
create table users(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL DEFAULT ”,
height DOUBLE(10,2) NOT NULL DEFAULT 0.00,
age INT NOT NULL DEFAULT 0,
sex CHAR(4) NOT NULL DEFAULT ‘男’
);
创建索引
1,主键索引 primary key
最好每张表都有一个主键索引,这样能通过主键索引的唯一性找到表里的数据(主键索引的值不能重复)
一张表只能一个主键
主键值不能为空
2,唯一索引 unique
可以在多个字段插入unique,是为了防止数据的重复,例如防止用户名注册的重复。
唯一索引防止数据的重复
3,常规索引
提高查询功能的性能,但是降低了插入,删除,修改的性能,可以在多个字段创建此索引,
需要用于查询的字段才建立此索引.
追加创建例子1,
index 索引名(字段名1,字段名2)
单独创建例子2,
create index 索引名 on 表名(字段名1,字段名2); //多个字段创建一个索引
删除例子:
drop index 索引名 on 表名; //一个字段单独创建索引
4,全文索引
?用的时候在看
数据库表类型及存储位置
表类型常用的是 MyISAM 和 InnoDB ,创建表默认是 MyISAM类型
事务处理 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
表空间占用 相对小 相对大
全文索引 支持 不支持
例子
create table 表名(字段名1,字段名2) type = InnoDB;
mysql默认字符集
???没懂
修改表
alter table 表名 add 字段名 varchar(30) not null;// 添加表
alter table 表名 add 字段名1 varchar(30) not null after 字段名2;//在字段名2的后面插入字段名1
alter table 表名 add 字段名 varchar(30) first;//最前面插入
alter table 表名 modify 字段名 char(3); // 修改字段类型为char(3) modify用于改字段类型
alter table 表名 change 原字段名 改字段名 varchar(30); //修改表名
alter table 原表名 rename as 改表名;//修改表名
alter table 表名 drop 删除的字段名; //删除字段名
drop table 表名//删除表名