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

初学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 数据库