mysql案例 mysql笔记
参考看《mysql数据库笔记》
数据库字符集的修改设置《解决php输出文本出现乱码》
php和mysql交互 https://sdeno.com/?p=5456
链接数据库
mysql.exe -h地址 -u用户名 -p密码
1,创建数据库
CREATE DATABASE `liuyan` CHARACTER SET 'utf8' //听说utf8mb4 才是真正的utf8 COLLATE 'utf8_general_ci';
2,选择数据库(选择后才能创建表和字段)
use liuyan;
3,设置字符集
set names utf8;
4,创建表和字段
CREATE TABLE `liuyan_user` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `liuyan_username` varchar(40) NOT NULL default '', `liuyan_userpass` char(40) NOT NULL default '', `liuyan_prompt` varchar(40) NOT NULL default '', `liuyan_answer` varchar(40) NOT NULL default '', `liuyan_sex` varchar(4) NOT NULL default '', `liuyan_pic` varchar(40) NOT NULL default '', `liuyan_email` varchar(40) NOT NULL default '', `liuyan_qq` varchar(20) NOT NULL default '', `liuyan_url` varchar(40) NOT NULL default '' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 写多读少选InnoDB 读多写少选MyISAM //默认是这个
对数据的增、删、改、查。
增:
创建库 CREATE DATABASE `test2`; 创建数据库,并且防止报错 create database if not exists 数据库名; 创建字符集编码为gbk的数据库 create database if not exists 数据库名 character set gbk; 创建库(推荐) CREATE DATABASE `liuyan` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 创建数据库以及防止出现乱码的注意事项:《解决php输出文本出现乱码》 插入数据 insert into 表 valus(‘值1′,’值2′,’值3′,..); insert into 表(字段1,字段2,字段3,..) values (‘字段1值’,’字段2值’,’字段3值’,..); 添加表 alter table 表名 add 字段名 varchar(30) not null; 在字段名2的后面插入字段名1 alter table 表名 add 字段名1 varchar(30) not null after 字段名2; 最前面插入 alter table 表名 add 字段名 varchar(30) first; 复制表 CREATE table 新表名 LIKE 被复制的表; //复制表的结构不含内容 create table 新表名 select * from 被复制的表; //完全复制包括内容 create table 新表名 select 字段1,字段2 from 被复制的表; //只复制指定字段
删:
drop database 库名; //删除库
drop database if exists 数据库名; //删除库,并且防止报错
drop table 表名; //删除表名
alter table 表名 drop 删除的字段名; //删除字段名
delete from 表 where id=2; //删除id是2的那条数据
DELETE FROM 表 WHERE id IN (1,2,3,4); //批量删除id为1,2,3,4的数据
truncate table 表名; 或者 delete from 表名; //清空表内容
改:
改字段内容 什么条件找到那条数据去修改指定的内容(键可以根据id或者其他字段名当做搜索条件) update 表 set 字段="修改内容",字段="修改内容" where 键=值; 改表名 alter table 原表名 rename as 改表名; 改字段名 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; 改字段类型 alter table 表名 modify 字段名 要修改的类型; 改表字符集 ALTER TABLE 表名 CONVERT TO CHARACTER SET gbk COLLATE gbk_chinese_ci; ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 修改数据库字符集编码 alter database 数据库名 character set = utf8; 改顺序 SELECT * FROM 表名 ORDER BY `时间的字段` DESC; //按照时间倒序排列数据(正序ASC) 批量修改某字段为统一内容 update 表 set 字段='2222'; 批量替换指定字符串 UPDATE 表名 SET 指定字段 = replace (指定字段, '想要替换的字符串', '替换成的字符串') WHERE 条件;
查:
SHOW DATABASES; //查看全部数据库 SELECT DATABASE(); //查看当前选中的哪个数据库 SHOW TABLES; //查看当前选中数据库的表 SELECT * FROM 表名; //查看整张表字段内容 DESCRIBE 表名; //查看整张表字段类型信息 SELECT * FROM 表名 WHERE 字段名='筛选内容';//筛选指定条件的所有数据 SELECT * FROM 表名 ORDER BY `时间的字段` DESC; //按照时间倒序排列数据(正序ASC) SELECT * FROM 表名 LIMIT 0,10 //从第一条开始查找前10条数据 例子:select * from users where bonus=0 order by id desc limit 0,10; SELECT COUNT(*) FROM 表 //查询表有多少条数据 查看mysql版本 select version(); 当前时间 select now(); 当前是哪个用户登录的 select user(); 查看创建这个数据库的字符集编码 show create database 数据库名; SHOW VARIABLES LIKE 'character%'; //同上 查看当前操作的数据库名 select database(); 查看其他库的所有表 show tables from 数据库名; /查看表的数据结构 show columns from 表名;
计算
加、减、乘、除
mysql> SELECT 3+4; mysql> SELECT 3/4;
//整数进一位 mysql> SELECT CEIL(3.01); //4 //相反 mysql> SELECT FLOOR(3.99); //3
//取整 mysql> SELECT 3 DIV 4; //0 //取余 mysql> SELECT 3 DIV 4; //3
//四舍五入 mysql> SELECT ROUND(3.652,2); //3.65 mysql> SELECT ROUND(3.652,1); //3.7
//截取 SELECT TRUNCATE(125.89,2); //125.89 SELECT TRUNCATE(125.89,1); //125.8 SELECT TRUNCATE(125.89,0); //125 SELECT TRUNCATE(125.89,-1); //120
备份:
mysqldump -u 帐号 -p -h地址 数据库 >备份后名称.sql
还原:
1,先创建一个空的数据库
CREATE DATABASE `test2`; //接着右键如下图

mysql结合php实例
