第14章 mysql基础
1)显示当前的数据库的版本号和日期
select version(),current_date();
2)通过AS关键字设置字段名。
select version() as version; //可以设置中文,通过单引号 as 可以把值显成中文
select version() as "版本号"; //版本号 必须用"" 双引号,引上。
3)通过select 执行返回计算结果
select (20+6)*4;
4)只要不打分号 可以输入很多项;
>select
>version()
>;
>select user() 查看使用者;
5)通过一行显示数据库使用者
select user();select now(); 两个表格,使用者的和创建时间。
6)命令的取消
>\c
7)mysql 窗口的退出
exit; quit;
第15章 mysql数据库
mysql常用的数据库类型
整数型:TINYINT,SMALLINT,INT,BIGINT
浮点型:FLOAT,DOUBLE,DECIMAL(M,D)
字符型:CHAR, VERCHAR
日期型:tiem year date datetime
TEXT 用于备注,大文章,帖子,新闻内容。
char 访问速度快
varchar 容量小
mysql数据库操作
1)显示当前存在的数据库
show databases;
2)选择你所需要的数据库
use guest;
3)查看当前所选择的数据库
select database(); 这个是一个函数
4)查看一张表的所有内容
select * from guest
5) 根据数据库设置中文编码
set names gbk;
6)创建一个数据库
create datebase book;
7)在数据库里创建一张表
create table user(
username varchar(20),
sex CHAR(1),
birth datetime
);
8)显示表的结构
descirbe users;
desc user;
9)给表插入一条数据
insert into user(username,sex,birth)values('dbs','0',now());
//这里记住,字符串要用''单引号注释。
10)筛选指定的数据
select * from user; //查询User表里面的所有记录
select username,sex from user;
select * from user where sex=’女‘;//注要性别是女的数据查询
select * from user where sex='1';
delete from user where sex='x'; //删除空值,这里不能用*
11) 修改指定的数据
update user set sex='男' where username='xiao';
//当username='xiao'的时候,把性别修改为男
12)删除指定的数据
delete from user where username='xiao'
删除记录为username='xiao'的记录。
13)按指定的数据排序
select * from user ordey by birth desc; //倒序
select * from user ordey by birth asc; //正序
select * from user order by birth;//正序
14)删除指定的表
drop table user;
15)删除指定的数据库
drop datebase test
44课
第15章 mysql数据库函数
文本函数
concat(x,y...)创建形如xy的新字符串
length(col)返回列中储存的值的长度
left(col,x)从列的值中返回最左边的x个字符
right(col,x)从列的值中返回最右边的x个字符
trim(col)从存储的值删除开头和结尾的空格
upper(col)把存储的字符串全部大写
lower(col)把存储的字符串全部小写
substring(col,start,length)从col中返回开始的start的length个字符(索引从0开始)
md5(col)把存储的字符串用md5加密
sha(col)把存储的字符串用sha加密
select left('col',2);
select trim(' test ');
substring('col',2,1) 从第个位置取1位
数字函数
ABS(X) 返回x的绝对值
ceiling(x)返回x的值的最大整数,这是有小数的。
floor(x)返回x的整数
round(x) 返回x的四舍五入
mod(x)返回x的余数
rand()返回0-1.0之间的随机数
format(x)返回一个格式式后的小数
sign(x)返回一个值,正数(+1),0,负数(-1);
sqrt(x)返回x的平方
select round(rand()*10); 取得整数
日期和时间函数
hour(col)只返回储存日期的小时值
minute(col)只返回储存日期的分钟值
second(col)只返回储存日期的秒值
dayname(col)返回日期值中天的名称
dayofmonth(col)返回日期值中当月第几天
monthname(col)返回日期值中月份的名称
month(col)返回日期值中月份的数字值
year(col)返回日期值中年份的数字值
curdate(now())返回当前日期
curtime(now())返回当前时间
now() 返回当前时间和日期 常用
select now()
select hour(now());
以上函数全放now();
格式化日期和时间(date_format()和time_format())
%e 一月中的某天 1-31
%d 一月中的某天,两位 01-31
%D 带后缀的天 1st-31st
%W 周日名称sunday-saturday
%a 简写的周日名称 sun-sat
%c 月份编号
%m 月份编号,两位 01-12
%M 月份名称 january-december
%b 简写的月份名称 jan-dec
%Y 年份 2012
%y 年份,两位 10
%l 小时 1-12
%h 小时,两位 01-12
%k 小时 24小时制 00-23
%H 小时,24小制度,两位
%i 分钟 00-59
%S 秒 00-59
%r 时间 10:50:20 PM
%T 时间,24小时制 20:17:03 pM
%p 上午或小午 AM 或PM
select date_format(now(),'%Y');
select time_format(now(),'%r'); //和date_format效果一样。
sql语句详解
1,创建一个班级数据库school,create database school;
里面包含一张班级表grade, create table grade;
包含编号(id),姓名(name)、邮件(email)、评分(point)、注册日期(regdate).
create table grade(
id tinyint(2) unsigned not null auto_increment,
name varchar(20)not null,
email varchar(40),
point tinyint(3) unsigned not null,
regdate datetime not null,
primary key(id)
);
//tingint unsigned 0-255
//tinyint(2) unsigned 表示无符号整数 0-99
id为主键,让id值唯一,不得重复。
drop table grade; //删除表
drop table if exists grade; //如果检测到grade字段就删除。
2.给这个班级表grade 新5-10条学生记录
insert into grade(name,email,point,regdate)values('li','qq@126.com','100',now());
ALTER TABLE `grade` ADD `xingming` VARCHAR( 100 ) NOT NULL ;//添加记录
ALTER TABLE `grade` DROP `xingming`; //删除字段(列)
ALTER TABLE `grade` ADD `xingming` VARCHAR( 100 ) NOT NULL COMMENT '姓名'; //添加记录带注释
下课46课
where 表达式的常用运算符
=
<
>
<=
>=
!= 不等于
is not null 具有一个值
is null没有值
between 在范围内
not between 不在范围内
in 指定的范围
or 两个条件语句之一为真
and 两个条件语句都为真
not 条件语句不为真
4.姓名等于'li'的学员,成绩大于90分的学员,邮件不为空的成员,70-90之间成员
select * from grade where name='li';
select * from grade where point>90;
select * from grade where email is not null;
select * from grade where email is null; //查询空值
select * from grade where point between 70 and 90;
select * from grade where point in(17,67,90,100);
5.查找邮件使用163的学员,不包含126.com字符串的学员
使用% 代表任意
like %126.com 以结尾是126.com
select *from grade where email like '%126.com';
select *from grade where email like'%@%'; 中间包含
select *from grade where email not like'%@%'; //not否
------
SELECT COUNT( * ) AS `行数` , `xingming`
FROM `grade`
GROUP BY `xingming`
ORDER BY `xingming`
LIMIT 0 , 30
------
6.按照学员注册日期的倒序排序,按照分数的正序排序
select * from grade ordey by regdate desc;
select * from grade ordey by point asc;
7.只显示前三条学员的数据,从第3条数据开始显示2条
select * from grade limit 3;
select * from grade limit 2,2;
8.修改姓名为'dbs'的电子邮件
update grade set email='dbs@126.com' where name='dbs';
9.删除编号为4的学员数据
delete from grade where id=4;
10.练一下分组的函数。
mysql分组函数
AVG(col)返回列的平均值
COUNT(col)统计行数
MAX(col)求列中的最大值
MIN(col)求列中的最小值
sum(col)求列中的和
select avg(point) from grade;
select avg(point) as '平均值' from grade;
select count(*) as '统计' from grade; 返回结果是字段数。
select count(email) from grade; //如果是空值,将不统计
select max(point) from grade; //最大值
11.检查这个表的信息
show table status \G
12.优化一张表
optimize table grade;
-------------------------
47课。。。 phpmyadmin
drop table 'grade'
主键即主关键字(primary key)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部份。一个表不能有多个主关键字,并且主关键字的表不能包含空值。主关键字是可选的,并且可在create table 或alter table语句中定义。
第48课
<?php
header('content-type:text/html;charset=utf-8');
mysql_connect('localhost:3306,'root','password') or die('连接失败');
or die连用
define('DB_HOST','LOCALHOST');
define('DB_USER','root');
define('DB_PWD','');
define('DB_NAME','school');
$conn=@mysql_connect(DB_HOST,DB_USER,DB_PWD)or die('连接失败',mysql_close());
mysql_select_db(DB_NAME,$conn)or die('指定数据库不存在',mysql_close());