您的位置:首页 > 数据库 > MySQL

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

2014-10-27 19:19 537 查看

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','phper@163.com','2000-00-00','111111','\upload\12345.jpg');

-- 为指定列插入数据

insert into tbuser (u_name,email) values('happy','happy@163.com');

-- 使用SET方式插入数据

insert into tbuser set u_name = 'sky',email = 'sky@163.com';

-- 使用子查询插入数据

insert into tbuser (u_name,email) select t_name,email from tbtest;

-- 一次插入多条数据

insert into tbuser (u_name,email) values('moon','moon@163.com'),('grubby','grubby@163.com');<
4000
/div>
(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 手册(中文版)下载地址:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP mysql 数据库 sql