MySQL高效编程学习笔记(一)--mysql基本指令

第一章 mysql基本指令

最近在学习MySQL数据库,在图书馆偶然发现一本《MySQL高效编程》,便学习了起来,同时也记下了一些笔记,方便以后使用起来方便,本人菜鸟一枚,有错误的地方还请大家指出,Thanks♪(・ω・)ノ。

第一章主要是一些基本的指令集,这里列出的指令集包含了mysql基础功能的大部分常用指令。

1.对数据库进行操作
update mysql.user set password=password(“123456”)where user=’root’;//设置密码
flush privileges;//重新加载权限表(保存密码)
quit//退出

show databases;//显示数据库
create database name;//创建名称为name的数据库(文件夹,操作数据库是表格)
use name;//使用name数据库
drop database databsename;删除数据库
select database();查看当前数据库

2.对表的操作
create table table_name(id int auto_increment PRIMARY KEY,name text,serial text,address text);//建表,id为自增的主键
create table student(ID int(5) PRIMARY KEY,name varchar(10),phonenumber int,sex char(1) DEFAULT ‘0’)
charset=utf8;建表student,并设置ID为主键,设置字符集为utf8
show tables;//显示表格
desc table_name;//详细字段
drop table tablename;删除表
alter table goods auto_increment=8;//将自增的主键设为比当前最大值大的值作为自增起始值。
//声明主键的方式小结
(1) create table users (username varchar(50) primary key);
(2)create table users(username varchar(50) ,userpwd varchar(50),primary key (username));
可声明联合主键create table users(username varchar(50),userpwd varchar(50),birth datetime,
primary key (username, userpwd));
(3)create table users (username varchar(50), userpwd varchar(50));
alert table users add primary key (username, userpwd);
//创建外键的方式小结
(1)create table users(username varchar(50),role_id int ,constraint fk_users_roles foreign key (role_id) references roles(roleid));
可以添加两个主键
CREATE TABLE roles_menus (roles_id INT ,menus_id INT,PRIMARY KEY (roles_id, menus_id),CONSTRAINT fk_users_roles FOREIGN KEY (roles_id) REFERENCES roles(roleid),CONSTRAINT fk_users_menus FOREIGN KEY (menus_id) REFERENCES menus(menuid) );
(2)create table users(username varchar (50) primary key,role_id int);
alter table users add constraint fk_users_roles foreign key (role_id) references roles(roleid);
eg: alter table 表 add constraint 外键名 foreign key (字段名) references 表B(关联的字段名)
//插入数据
insert into table_name (列名1,列名2…) values(1,’王康’,’123’,’中国山东潍坊’);//插入数据,注意当值为字符串、日期必须用单引号括起来
insert into table_name values(1,’王康’,’123’,’中国山东潍坊’);//插入数据涵盖所有列时,可以省略列名

//更新已存在的记录
update tablename set 列名1=值1,列名2=值2…where 条件
update balance_warn_value set Balance_Max_Warn_Value1=1500 where ID=1;

//删除记录
delete from table name where 条件;

3.导入与导出.sql文件
Use databasename;
Source d:\dump.sql
mysql -uroot –padmin databaseName < d :\dump.sql
Load data infile ‘/tmp/dump.txt’ into table linuxtest1.test fields terminated by ‘,’ optionally enclosed by ’ ” ’ lines terminated by ‘\n’ ;
show variables like “%char%”;//查看数据库编码格式
导出文件
mysqldump -hlocalhost -uroot -padmin –databases databaseName > d:\dump.sql 导出mysql 中的数据库 databaseName
mysqldump -hlocalhost -uroot -padmin –all-databases > dump.sql 导出数据库服务器上的所有数据库
mysqldump –hlocalhost –uroot –padmin databaseName tb_user > d:\dump.sql导出mysql数据库databaseName的tb_user表及数据

select * into outfile ‘/tmp/bump.txt’ fields terminated by ‘,’ lines terminated by ‘\n’ from linuxtest.test2 ;

4.查询数据
select 列名1,列名2… from 表名 条件//除非查询所有数据,一般不推荐用select *
select * from table_name ;//显示所有数据
select name from table_name where name=王康’;//搜索名字王康
select * from table_name where name=”王康”(!=’王康’);//搜索名字(不)叫王康的数据
select current_time(current_date);得出当前时间
检索条件符号包括 =,<,>,<=,>=,<>不等于,IS [NOT] NULL为空,[NOT] LIKE和目标一致,[NOT]BETWEEN 在范围内,[NOT]IN 包含在制定候补值内
select ID from history_balance_data where Update_time in ( ‘2018-05-30 14:41:57’,’2018-05-30 14:41:59’);
select ID from history_balance_data where Update_time like ‘2018-05-30 14:41:5%’;//%代替未知部分
select ID from history_balance_data where press1 is NULL;//错误方式 where press1=NULL,会导致检索失败

//多个表达式组合,注意优先级顺序 NOT>AND>OR
select ID,citycode,englishname from chinacitycode where id between 3 and 13 and englishname <> ‘shunyi’;
//找id<3或者id>13的数据,且数据的英文名不为’shunyi’
select ID,citycode,englishname from chinacitycode where id<3 or id>13 and englishname <> ‘shunyi’;//错误,结果为找id<3或者id>13且英文名不为’shunyi’的数据,
select ID,citycode,englishname from chinacitycode where (id<3 or id>13 )and englishname <> ‘shunyi’;//正解
//对查询结果以englishname 排序 order by
select ID,citycode,englishname from chinacitycode where (id between 3 and 13 )and englishname <> ‘shunyi’ order by englishname asc;
//取排序结果的第m到n个数据 limit m,n
select ID,englishname from chinacitycode where id between 3 and 13 order by englishname asc limit 1,2;//取排序结果第2、3个数据
select ID,englishname from chinacitycode where id between 3 and 13 order by englishname asc limit 2;//取排序结果第0-3个数据
//查询数据按统计函数(最大、小值,均值、件数)分组group by
select max(user_id),grade from user_info group by grade ;//将数据按照grade字段分组,查询每组最大的user_id以及当前组内容
select max(ID),englishname from chinacitycode where id between 3 and 23 group by country;
//列的别名,列名后面加as 别名
select max(ID) as cityid,englishname from chinacitycode where id between 3 and 23 group by country;

猜你喜欢

转载自blog.csdn.net/HuYingJie_1995/article/details/82632943