初学MySQL
2015-11-22 20:58
916 查看
SQL(Structured Query Language)结构化查询语言的缩写。由IBM于20世纪70年代提出。
MySQL使用SQL与服务器通讯。
SQL分类:
DDL数据定义
CREATE DOP ALERT
DML数据操作
INSERT DELETE UP
DCL数据控制
GRANT REVOKE
1.显示所有数据库
show databases;
2.创建数据库
create database 数据库名称
例如: create database mydb; //数据库如果存在,会产生error
create database if not exists mydb; //如果数据库不存在创建。不会产生error
上面的创建方式会使用数据库系统提供的默认编码。
create database if not exists mydb1 character set 编码 //可以创建一个指定编码的数据库。
在创建数据库时指定字符编码与校验规则
create database if not exists mydb1 character set 编码 collate 校验值。
查看mysql 支持的字符集
show character set;
3.指定使用某个数据库
use 数据库名称
如果要访问的是A数据库下的a表,
那么我们就要先使用use 指定访问该数据库,才可以访问到这个库下的表。
4.查看某一个指定数据库
show create database 数据库名称
会显示的是数据库名称与数据库创建语句。
5.删除数据库
drop database mydb2;
drop database if exists mydb1;
书写时注意:1.不区分大小写。
2.必须以分号结束。
6.修改数据的字符编码
alter database 数据库名称 character set gb2312
7.备份数据库
创建一张表
create table mytab(
id int,
name varchar(20)
)
向表中插入记录
insert into mytab values(1,'tom');
在windows平台下,执行mysqldump命令。
mysqldump -u root -p 要备份的数据名称 > 保存的文件路径
c:\>mysqldump -u root -p mydb > d:\my.sql
8.恢复数据。
在mysql下可以使用source 备份文件的路径名 将数据进行恢复。
sql>source d:\my.sql
9.表中的字段的类型
create table if not exists 表名
(
字段1 类型,
字段2 类型,
字段3 类型,
)
create table employee(
id int(5),
name varchar(20),
salay numeric,
birthday date,
dis text,
img blob
)
描述整数可以使用
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。
*INT[(M)] [UNSIGNED] [ZEROFILL]
一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。
描述浮点数
float
double
decimal
*numeric
字符
char(10) 定长字符串 0-65535
* varchar(10) 可变长度字符串 0-65535
text 大文本 大于65535个可以使用
blob 描述二进制。
日期
*date yyyy-mm-dd
*datetime yyyy-mm-dd hh:mm:ss
year yyyy
TIMESTAMP 可以根据指定长度显示信息。
10.创建一个员工表
字段 属性
Id 整形
name 字符型
gender
字符型或bit型
birthday
日期型
reg_date
日期型
job 字符型
salary
小数型
resume
大文本型
create table employee(
id int(3),
name varchar(20),
gender char(10),
birthday date,
reg_date datetime,
job varchar(50),
salary numeric(8,2),
resume text
)
11.关于表的查看操作台
表结构 desc 表名
查看创建表的语句 show create table 表名
查看表中列的信息 show columns from 表名
12.在于表的结构操作
添加列:在上面员工表的基础上增加一个image列。
alter table employee add image blob;
修改列:
修改job列,使其长度为60。
alter table employee modify job varchar(60);
列名name修改为username
alter table employee change column name username varchar(20)
删除列:
删除gender列。
alter table users drop gender;
对表进行重命名:
表名改为users。
rename table employee to users;操作
13.insert操作
基本结构
insert into 表名 values(值1,值2,....)
格式1
向所有字段插入值
insert into users values(
1,
'tom',
'2000-10-10',
'2012-10-10 12:12:12',
'manager',
10000,
'good boy',
null
);
格式2
向指定的字段插入值
insert into users(id,username) values(2,'jack');
在向指定字段插入值时,要注意指定的列与值要对应。
username的长度为20,如果插入的数据长度超过20?
insert into users(id,username) values(3,'aaaaaaaaaaaaaaaaaaaaa');
insert into users(id,username) values(4,'中');出现问题
因为当前平台所使用的字符编码是GBK,mysql数据库服务器默认编码是utf8.
show variables like 'character%';
set character_set_results=gbk;
set character_set_client=gbk;
将数据库的client与results的编码指定成gbk;
推荐的方式:可以对mysql安装目录下的my.ini文件中对client端的
default-character-set=gbk修改。
id int(3)问题
insert into users(id) values(10);
insert into users(id) values(100);
insert into users(id) values(1000);
如果在创建id 时 id int UNSIGNED 代表的是无符号
默认有符号的。
insert优化操作台
在插入数据时,如果执行多条insert语句,那么可以使用
insert into 表名(字段1,字段2) values (值1,值2),(值1,值2),(值1,值2);
放种操作比执行三条insert效率提高3倍。
insert into employee values(1,"tom","male","2000-10-10",10000,"2012-10-10","good boy");
insert into employee values(2,"jack","male","2001-10-10",10000,"2011-10-10","good boy");
insert into employee values(3,"tony","female","2002-10-10",10000,"2010-10-10","good girl");
insert into employee values (1,"tom","male","2000-10-10",10000,"2012-10-10","good boy"),(2,"jack","male","2001-10-10",10000,"2011-10-10","good boy"),(3,"tony","female","2002-10-10",10000,"2010-10-10","good girl");
14.update 操作
基本格式
update 表名 set 字段=值 where 条件;
一般情况下我们在操作时,都有有条件的修改。
update users set username='fox',birthday='2000-9-9' where id=2;
如果对多个字段进行修改,那么字段间要加上逗号 。
15.delete操作
基本格式
delete from 表名 [where 条件]
一般都会添加条件.
delete是删除表内容 一般是有条件删除,如果是删除整个表内容,会一条条记录进行判断删除。
truncate table 表名 删除表内容。 先记表的结构,drop table,在重新创建表结构。
drop table 是删除表的结构。
16.select操作
select * from 表名; //在开发中不要使用*
select 字段 from 表名
select id,name,job,salary from users;
distinct 用来去掉重复数据,如果是有多个字段,那么将多个字段都重复的数据显示一次。
MySQL使用SQL与服务器通讯。
SQL分类:
DDL数据定义
CREATE DOP ALERT
DML数据操作
INSERT DELETE UP
DCL数据控制
GRANT REVOKE
1.显示所有数据库
show databases;
2.创建数据库
create database 数据库名称
例如: create database mydb; //数据库如果存在,会产生error
create database if not exists mydb; //如果数据库不存在创建。不会产生error
上面的创建方式会使用数据库系统提供的默认编码。
create database if not exists mydb1 character set 编码 //可以创建一个指定编码的数据库。
在创建数据库时指定字符编码与校验规则
create database if not exists mydb1 character set 编码 collate 校验值。
查看mysql 支持的字符集
show character set;
3.指定使用某个数据库
use 数据库名称
如果要访问的是A数据库下的a表,
那么我们就要先使用use 指定访问该数据库,才可以访问到这个库下的表。
4.查看某一个指定数据库
show create database 数据库名称
会显示的是数据库名称与数据库创建语句。
5.删除数据库
drop database mydb2;
drop database if exists mydb1;
书写时注意:1.不区分大小写。
2.必须以分号结束。
6.修改数据的字符编码
alter database 数据库名称 character set gb2312
7.备份数据库
创建一张表
create table mytab(
id int,
name varchar(20)
)
向表中插入记录
insert into mytab values(1,'tom');
在windows平台下,执行mysqldump命令。
mysqldump -u root -p 要备份的数据名称 > 保存的文件路径
c:\>mysqldump -u root -p mydb > d:\my.sql
8.恢复数据。
在mysql下可以使用source 备份文件的路径名 将数据进行恢复。
sql>source d:\my.sql
9.表中的字段的类型
create table if not exists 表名
(
字段1 类型,
字段2 类型,
字段3 类型,
)
create table employee(
id int(5),
name varchar(20),
salay numeric,
birthday date,
dis text,
img blob
)
描述整数可以使用
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。
*INT[(M)] [UNSIGNED] [ZEROFILL]
一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。
描述浮点数
float
double
decimal
*numeric
字符
char(10) 定长字符串 0-65535
* varchar(10) 可变长度字符串 0-65535
text 大文本 大于65535个可以使用
blob 描述二进制。
日期
*date yyyy-mm-dd
*datetime yyyy-mm-dd hh:mm:ss
year yyyy
TIMESTAMP 可以根据指定长度显示信息。
10.创建一个员工表
字段 属性
Id 整形
name 字符型
gender
字符型或bit型
birthday
日期型
reg_date
日期型
job 字符型
salary
小数型
resume
大文本型
create table employee(
id int(3),
name varchar(20),
gender char(10),
birthday date,
reg_date datetime,
job varchar(50),
salary numeric(8,2),
resume text
)
11.关于表的查看操作台
表结构 desc 表名
查看创建表的语句 show create table 表名
查看表中列的信息 show columns from 表名
12.在于表的结构操作
添加列:在上面员工表的基础上增加一个image列。
alter table employee add image blob;
修改列:
修改job列,使其长度为60。
alter table employee modify job varchar(60);
列名name修改为username
alter table employee change column name username varchar(20)
删除列:
删除gender列。
alter table users drop gender;
对表进行重命名:
表名改为users。
rename table employee to users;操作
13.insert操作
基本结构
insert into 表名 values(值1,值2,....)
格式1
向所有字段插入值
insert into users values(
1,
'tom',
'2000-10-10',
'2012-10-10 12:12:12',
'manager',
10000,
'good boy',
null
);
格式2
向指定的字段插入值
insert into users(id,username) values(2,'jack');
在向指定字段插入值时,要注意指定的列与值要对应。
username的长度为20,如果插入的数据长度超过20?
insert into users(id,username) values(3,'aaaaaaaaaaaaaaaaaaaaa');
insert into users(id,username) values(4,'中');出现问题
因为当前平台所使用的字符编码是GBK,mysql数据库服务器默认编码是utf8.
show variables like 'character%';
set character_set_results=gbk;
set character_set_client=gbk;
将数据库的client与results的编码指定成gbk;
推荐的方式:可以对mysql安装目录下的my.ini文件中对client端的
default-character-set=gbk修改。
id int(3)问题
insert into users(id) values(10);
insert into users(id) values(100);
insert into users(id) values(1000);
如果在创建id 时 id int UNSIGNED 代表的是无符号
默认有符号的。
insert优化操作台
在插入数据时,如果执行多条insert语句,那么可以使用
insert into 表名(字段1,字段2) values (值1,值2),(值1,值2),(值1,值2);
放种操作比执行三条insert效率提高3倍。
insert into employee values(1,"tom","male","2000-10-10",10000,"2012-10-10","good boy");
insert into employee values(2,"jack","male","2001-10-10",10000,"2011-10-10","good boy");
insert into employee values(3,"tony","female","2002-10-10",10000,"2010-10-10","good girl");
insert into employee values (1,"tom","male","2000-10-10",10000,"2012-10-10","good boy"),(2,"jack","male","2001-10-10",10000,"2011-10-10","good boy"),(3,"tony","female","2002-10-10",10000,"2010-10-10","good girl");
14.update 操作
基本格式
update 表名 set 字段=值 where 条件;
一般情况下我们在操作时,都有有条件的修改。
update users set username='fox',birthday='2000-9-9' where id=2;
如果对多个字段进行修改,那么字段间要加上逗号 。
15.delete操作
基本格式
delete from 表名 [where 条件]
一般都会添加条件.
delete是删除表内容 一般是有条件删除,如果是删除整个表内容,会一条条记录进行判断删除。
truncate table 表名 删除表内容。 先记表的结构,drop table,在重新创建表结构。
drop table 是删除表的结构。
16.select操作
select * from 表名; //在开发中不要使用*
select 字段 from 表名
select id,name,job,salary from users;
distinct 用来去掉重复数据,如果是有多个字段,那么将多个字段都重复的数据显示一次。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- Android之获取手机上的图片和视频缩略图thumbnails
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 数据库链接字符串查询网站
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法