MYSQL数据库简介和常用的基本SQL语句

1、MYSQL数据库简介

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

2、常用数据类型

数值型:TINYINT,SMALLINT,INT,BIGINT,FLOAT,DOUBLE,DECIMAL(M,D)

字符型:CHAR,VARCHAR,TINYTEXT ,TEXT ,LONGTEXT

日期型:DATETIME ,DATE,TIMESTAMP

3、常用SQL语句

(0)MySql注释
单行注释:
  # 到该行结束
-- 到该行结束 (注意:使用“--”时,一定要在“--”后加一个空格)
多行注释:
 /* 行中间或多个行 */ 


(1)显示所有的数据库
show databases;
(2)删除数据库
drop database IF EXISTS dbname;
(3)创建数据库
drop database IF EXISTS dbname;
create database dbname;
(4)选择数据库
use dbname;

(5)显示当前使用数据库中所有的表
show tables;
(6)删除表
drop table IF EXISTS tbname;
(7)创建表
(7.1)常用方法:
use dbname;
drop table IF EXISTS tbname;
create table tbname(
`id` int(10) unsigned NOT NULL auto_increment,  #unsigned  无符号,即为非负数,用此类型可以增加数据长度!
`user_name` varchar(60) NOT NULL default '',
`email` varchar(60) NOT NULL default '',
`user_money` decimal(10,2) NOT NULL,
`birthday` date NOT NULL default '0000-00-00',
`content` text,
PRIMARY KEY  (`id`),
UNIQUE KEY `user_name` (`user_name`),
KEY `email` (`email`)                           #KEY 普通索引,可以提升查询效率
);
(7.2)通过子查询建表,使用这种方式建表会将数据也备份到新表中
-- 部分列名匹配模式:
drop table IF EXISTS tbname2;
create table tbname2 (
t_name varchar(20),
t_email char

as 
select user_name, email from tbname;
-- 上面的列名和子查询的列名以及类型要对应,不对应时会出错!

-- 全部列名模式:
drop table IF EXISTS tbname3;
create table tbname3
as
select * from tbname;
-- 直接将整个表的字段类型和数据备份到新表tbname3中

(8)修改表
(8.1)重命名表
alter table tbname rename to tbuser;
(8.2)重命名字段
alter table tbuser change user_name u_name varchar(50);
alter table tbuser change user_money u_money decimal(10,2);
注: 如果需要改变列名建议使用change,如果需要改变数据类型和显示位置可以使用modify
(8.3)增加字段
-- 增加单个字段
alter table tbuser add u_tel char(15) DEFAULT '12345678';
-- 增加多个字段
alter table tbuser add(
u_qq char(12),
u_photo varchar(30)
);
(8.4)修改字段
-- 修改单个字段
alter table tbuser modify u_tel varchar(15) default '053100000000';
-- 修改单个字段的位置,在第一列显示
alter table tbuser modify u_tel varchar(15) default '053100000000' first;
-- 修改单个字段的位置,在指定字段之后显示
alter table tbuser modify u_tel varchar(15) default '053100000000' after id;
-- 注意:alter modify不支持一次修改多个列,但是Oracle支持多列修改
-- 但是MySQL可以通过多个modify的方式完成:
alter table tbuser 
modify u_tel varchar(15) default '053100000000' after u_money, 
modify u_name varchar(20) after u_tel;
(8.5)删除表中指定的字段
alter table tbuser drop content;

(9)添加数据INSERT INTO
-- 插入一条记录
INSERT into tbuser VALUES(null,11.11,'053112345678','phper','[email protected]','2000-00-00','111111','\upload\12345.jpg');
-- 为指定列插入数据
insert into tbuser (u_name,email) values('happy','[email protected]');

-- 使用SET方式插入数据
insert into tbuser set u_name = 'sky',email = '[email protected]';
-- 使用子查询插入数据
insert into tbuser (u_name,email) select t_name,email from tbtest;
-- 一次插入多条数据
insert into tbuser (u_name,email) values('moon','[email protected]'),('grubby','[email protected]');
(10)修改数据UPDATE
-- 修改表中所有数据
update tbuser set birthday = '1990-00-00',u_money=666.66;
-- 修改指定条件的记录
update tbuser set birthday = '1985-00-00' where u_name = 'sky';
(11)删除数据DELETE
-- 删除所有数据
delete from tbuser;
-- 删除指定条件数据
delete from tbuser where id < 5;
-- truncate删除表中所有数据,比DELETE执行速度快,但truncate不能指定条件删除数据
truncate tbuser;

(12)查询SELECT
(12.1)查询表中所有数据
select * from tbuser;
(12.2)查询指定列和条件的数据
select u_name,email from tbuser where id >= 2;
(12.3)distinct 去掉重复的数据
select distinct birthday from tbuser;
-- 去掉多列组合的重复数据
select distinct u_tel,birthday from tbuser;
(12.4)where条件查询
-- 算术比较 >、<、=、>=、<= 
select * from tbuser where id<=7;
-- 复合条件查询 and、or、not
select * from tbuser where id<=7 and u_name='sky';
--  between min and max查询:大于等于min且小于等于max
select * from tbuser where id between 2 and 6; 
-- 查询是否为NULL:is null、is not null
SELECT * from tbuser where u_qq is not null;
-- in 查询
select * from tbuser where u_name in ('sky','fly','th000');
-- like 模糊查询:
-- _代表一个字符
select * from tbuser where u_name like '__y';
-- %代表任意多个字符
-- escape转义,指定某个字符为转义字符,如:
select * from tbuser where u_name like 'a_%' escape 'a';  -- 指定a为转义字符,上面的就可以查询name中包含"_"的数据
(12.5)对查询的结果进行算术运算
select u_money+20,u_money/3 from tbuser;
(12.6)concat函数,字符串连接
select concat(u_name,'先生') from tbuser;
(12.7)起别名
select t.u_name as '姓名' from tbuser as t;    -- 给表"tbuser" 起别名为 "t",给列名u_name起别名为“姓名”。AS可以省略,效果一样。
(12.8)使用 LIMIT 属性来设定返回的记录数。
 LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。
select * from tbuser limit 3,4;  -- 返回第4-7行数据
select * from tbuser limit 3;    -- 返回查询结果的前三条数据
select * from tbuser limit 3,100000000000000;  -- 返回从某个偏移量到结果集合的末端之间的所有的行,您可以对第二个参数是使用比较大的数

(12.9)排序ORDER BY
-- 升序,默认为升序
SELECT * FROM TBUSER ORDER BY u_name ASC;
-- 降序
SELECT * FROM TBUSER ORDER BY u_name DESC;
-- 多列组合
SELECT * FROM TBUSER ORDER BY birthday,u_name,id DESC;


简洁、清晰的MySql教程:http://www.w3cschool.cc/mysql/mysql-tutorial.html
详细、全面的MySql手册(官方英文版):http://dev.mysql.com/doc/
详细、全面的MySql 5.1 手册(中文版)下载地址:

你可能感兴趣的:(Mysql数据库,PHP,mysql,数据库,sql)