初学MySQL

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 用来去掉重复数据,如果是有多个字段,那么将多个字段都重复的数据显示一次。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值