mysql或且_MySQl之最全且必会的sql语句创建⼀个名称为mydb1的数据库,如果有mydb1数据库则直接使⽤,如果⽆则创建mydb1数据库
create database if not exists mydb1;
create database if not exists mydb1;
创建⼀个使⽤UTF8字符集的mydb2数据库,注意这⾥不是UTF-8
create database if not exists mydb2 character set UTF8;
create database if not exists mydb2 character set UTF8;
创建⼀个使⽤UTF8字符集,并带校对规则的mydb3数据库
create database if not exists mydb3 character set UTF8 collate utf8_general_ci;
校对规则:是数据库表中的所有记录按什么⽅式存储数据的先后顺序,例如:a在前,z在后
字符集与校对规则是⼀⼀对应,不能乱改
如果不写校对规则的话,默认是[对应字符集]默认的校对规则。参考<>
查看当前数据库服务器中的所有数据库
show databases;
查看前⾯创建的mydb1数据库的定义信息
show create database mydb1;
show create database mydb1;
删除前⾯创建的mydb1数据库,如果有mydb1则删除
drop database if exists mydb1;
drop database if exists mydb1;
使⽤mydb2数据库
use mydb2;
use mydb2;
查看数据库服务器中的数据库,并把其中mydb3库的字符集修改为GBK
alter database mydb3 character set GBK;
alter database mydb3 character set GBK;
以下代码是在mydb2数据库中创建users表,并插⼊⼏条记录,学员们暂时不⽤理会
create table if not exists users(
name varchar(10)
);
insert into users values('XX');
insert into users values('YY');
insert into users values('ZZ');
备份mydb1库中的数据到e:/xx.sql的⽂件中,以便将来恢复之⽤
window7(先exit到windows环境)备份:mysqldump -uroot -p mydb1 > e:\mydb1.sql回车
mysqldump -uroot -p mydb1 > d:/myydb1.sql
简单的mysql语句mysqldump是mysql提供的⽤于备份数据库的命令
mysqldump命令必须window环境运⾏
source命令中mysql环境运⾏
mysql恢复:source e:\mydb1.sql回车
注意:恢复时,[先创建数据库]并使⽤该数据库,[再]通过source命令,因为sql⽂件中[只有]表信息,[⽆]数据库信息创建⼀个users表,包含id/username/password/birthday/salary
create table if not exists users(
id int(4),
username varchar(10),
password varchar(6),
birthday datetime,
salary float(6,2)
);
float(6,2)表⽰:2表⽰显⽰时⼩数点后最多⼏位,超过2位,四舍五⼊;
6表⽰整数和⼩数最多⼏位,整数部份最多(6-2)位
以上表中的所有字段都允许为NULL,且默认NULL
如果数据显⽰出来是乱码,按如下步骤:
向users表中插⼊⼀条记录,先英后中(⽆法插⼊中⽂)
insert into users values(1,'jack','123456','2015-8-8 8:8:8',9999.99);
insert into users values(2,'哈哈','123456','2015-9-9 9:9:9',9999.99);
insert into users values(3,'呵呵','123456','2015-7-7 7:7:7',7777.77);
查询users表的结构
desc users;
创建employees表------------------------------⽤employees.sql表
在上⾯员⼯表的基本上增加⼀个image列
alter table employees
add image blob;
alter table employees add image blob;
企业中,不是真真正正存照⽚本⾝,⽽是存照⽚路径,即E:/zgl.jpg
修改name列,使其长度为60
alter table employees
modify name varchar(60);
alter table employees
modify name varchar(60);
删除image列
alter table employees
drop column image;
alter table employees
drop column image;
如果表中有内容的话,删除或添加某列,不影响其它列的信息
表名employees改为staff
rename table employees to staff;
rename table employees to staff;
修改表的字符集为GBK
alter table staff
character set UTF8/GBK/GB2312;
列名name修改为username
alter table staff
change column name username varchar(60);
alter table staff
change column name username varchar(60);
向staff表中插⼊数据
insert into staff values(3,'赵君','男','2005-1-1',3333.33,'2005-7-1','这是备注信息');
显⽰插⼊NULL
insert into employees values(1,'哈哈','男','2015-1-1',1111.11,'2015-5-5','这是备注信息',NULL);隐式插⼊NULL
insert into employees(id,name,sex,birthday,salary,resume)
values(2,'呵呵','男','2015-1-1',2222.22,'这是备注信息');
如果存在表就删除表
drop table if exists staff;//表不在了
drop table if exists staff;
truncate table users;//表还在,只不过没有内容了
再重新创建表
create table staff(
id int(5),
name varchar(6),
sal int(5)
);
insert into staff values(1,'哈哈',7000);
insert into staff values(2,'呵呵',8000);
insert into staff values(3,'嘻嘻',9000);
insert into staff values(4,'明明',10000);
insert into staff(id,name,sal) values(4,'星星',6000);
insert into staff(name,id,sal) values('⽉⽉',5,6000);
----------------------------------------------------------------------------------------------------------------
将所有员⼯薪⽔修改为10000元
update staff set sal=10000;
update staff set sal=10000;
以上就是SQL语句的威⼒,如果发送命令,MySQL数据库服务器⾃⾏会解析其命令,并做相对应的过程处理,这个过程处理对程序员来讲,是封闭的,看不见。
SQL的全称【结构化查询语句】,第四代计算机语⾔
第⼀代:机器语⾔,即01010010100100101
第⼆代:汇编语⾔,即⽤⼀个代号去表⽰10101010这些数字
第三代:⾼级语⾔,即c/c++/vb/java/c#/...
第四代:命令语⾔,即SQL
第五代:智能语⾔,。。。
将姓名为'哈哈'的员⼯薪⽔修改为11000元
update staff set sal=11000 where name = '哈哈';
update staff set sal=11000 where name = '哈哈';
将⽉⽉的薪⽔在原有基础上增加1000元
update staff set sal = sal + 1000 where name = '⽉⽉';
update staff set sal = sal+1000 where name = '⽉⽉';
删除表中3号的记录
delete from staff where id = 3;
delete from staff where id = 3;
删除表中所有记录
delete from staff;
delete它是⼀⾏⼀⾏删除,速慢较【慢 】 drop table staff;整个表都被删除了
使⽤truncate删除表中记录
truncate它是整表删除后再重构,速慢较【快】。但是它的表结构还在,知识表内容没了
-
--------------------------------------------------------------------------------------------------------------
students表
use mydb1;
drop table if exists students;
create table if not exists students(
id int(5),
name varchar(20),
chinese int(5),
english int(5),
math int(5)
);
insert into students(id,name,chinese,english,math) values(1,'张⼩明',89,78,90);
insert into students(id,name,chinese,english,math) values(2,'李进',67,98,56);
insert into students(id,name,chinese,english,math) values(3,'王五',87,78,77);
insert into students(id,name,chinese,english,math) values(4,'李⼀',88,98,90);
insert into students(id,name,chinese,english,math) values(5,'李来财',82,84,67);
insert into students(id,name,chinese,english,math) values(6,'张进宝',55,85,45);
insert into students(id,name,chinese,english,math) values(7,'黄蓉',85,75,80);
insert into students(id,name,chinese,english,math) values(8,'张⼀李',75,65,30);
insert into students(id,name,chinese,english,math) values(9,'何李',75,65,30);
insert into students(id,name,chinese,english,math) values(10,'单',75,65,30);
insert into students(id,name,chinese,english,math) values(11,'李',75,65,NULL);
insert into students(id,name,chinese,english,math) values(12,'jack',75,65,40);
insert into students(id,name,chinese,english,math) values(13,'marry',75,65,60);
查询表中所有学⽣的信息,*表⽰所有字段,顺序与表结构相同------------------------------⽤students.sql表select id,name,chinese,math,english from students;
select name,id,chinese,math,english from students;
select name,chinese,math,english,id from students;
select * from students;
*号虽然写好起来⽅便,但充满不确定因素,要慎⽤
查询表中所有学⽣的姓名和对应的英语成绩
select name,english from students;
select name,english from students;
过滤表中重复语⽂成绩distinct(区别的)放在单列名前⾯,可以对该列名重复你元素进⾏筛选,仅仅保留⼀个

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。