SQL语句

SQL语句的规范:
1、mysql对于SQL语句不区分大小写,SQL语句关键字尽量大写
show databases;
SHOW DATABASES;
至于表中的数据是否区分大小写,和字符编码,和数据类型,和校对规则有关。
ci:不区分大小写
cs:区分大小写
bin:最严格,区分大小写,以二进制值存储

2、在sql语句中的值,除了数值类型(整数、小数),其他的类型,都使用’'引起来。
例如:select * from t_employee where gender =‘男’;

3、如果在SQL中需要给字段取别名时,可以给别名加""。
如果别名中间没有空格,"“可以省略,如果有空格,不能使用”"

4、所有标点符号使用英文状态下的半角输入方式

5、必须保证所有(),单引号,双引号是成对结束的

6、可以使用(1)#单行注释 (2)–空格单行注释 (3)/* 多行注释 */

命名规范:
1、必须只能包含 A–Z, a–z, 0–9, _共63个字符
2、不能在对象名的字符间留空格
例如:create database 0513 db; #错误的
3、避免重名
同一个DB数据库中,表不能重名,
同一张表中,字段不能重名
同一个DBMS数据库管理软件中,数据库不能重名
4、命名时不要使用关键字
create database database; #错误的

SQL:
1、DDL:Data Define Language
数据定义语言,即定义数据的结构。
例如:create,drop,alter
2、DML:Data Manage Language
数据管理语言,对数据值的增、删、改、查
例如:insert,delete,update,select
3、DCL:Data Control Language
数据控制语言,对权限、事务等的控制
例如:grant,revoke,commit,rollback等

#一、DDL
#(一)操作database的SQL
#1、查看当前mysql数据库管理软件中的所有数据库
show databases;

#2、使用某个数据库
use 数据库名;

#例如:use test;

#3、创建一个数据库
create database 数据库名;

#例如:
create database library;

#4、删除一个数据库
drop database 数据库名;

#例如:
drop database 0513db;

#(二)操作表结构的SQL
1、查看某个数据库下的所有表格
show tables;

mysql> show tables;
ERROR 1046 (3D000): No database selected
解决方案有两种:
(1)先use,再操作表格
use 数据库名;
show tables;
(2)show tables from 数据名;

2、创建某个表格
create table 【数据库名.】表名称(字段名1 数据类型,字段名2 数据类型,字段名3 数据类型);
create table 【数据库名.】表名称(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型
);
说明:如果前面有use语句,那么【数据库名.】可以省略

例如:
create table test.t_stu(
sid int,
sname varchar(20),
gender char,
birthday date,
score double
);

3、查看表结构
desc 表名称;

mysql> desc t_stu;
±---------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±---------±------------±-----±----±--------±------+
| sid | int(11) | YES | | NULL | |
| sname | varchar(20) | YES | | NULL | |
| gender | char(1) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| score | double | YES | | NULL | |
±---------±------------±-----±----±--------±------+
类似于通过Class对象看类的信息。

4、修改表名称
rename table 旧表名 to 新表名;
alter table 旧表名 rename 新表名;
例如:
rename table t_stu to student;
alter table student rename t_stu;

5、修改表结构
(1)增加一列,增加一个字段
alter table 表名称 add 【column】 字段名 数据类型; #默认添加到最后
alter table 表名称 add 【column】 字段名 数据类型 first;
alter table 表名称 add 【column】 字段名 数据类型 after 另一个字段;

例如:增加一列,存储电话号码
alter table t_stu add tel char(11);

增加一列,存储地址,添加到第一列的位置
alter table t_stu add address varchar(50) first;

增加一列,年龄,添加到sname的后面
alter table t_stu add age int after sname;

(2)修改,字段的数据类型或位置
alter table 表名称 modify 【column】 字段名 新的数据类型;
alter table 表名称 modify 【column】 字段名 数据类型 first;
alter table 表名称 modify 【column】 字段名 数据类型 after 另一个字段;

例如:修改gender的数据类型为char(2)
alter table t_stu modify gender char(2);
例如:修改address的位置到最后一列
alter table t_stu modify address varchar(50) after tel;

(3)修改,列的名称
alter table 表名称 change 【column】 旧字段名 新的字段名 数据类型;
例如:修改列的名称tel为phone
alter table t_stu change tel phone char(11);

(4)删除一列
alter table 表名称 drop 【column】 字段名;

例如:删除地址列
alter table t_stu drop address;

6、删除整张表
drop table 表名称;

例如:drop table t_stu;

#二、DML:增删改查 对应程序员来说,DML的重要性要比你掌握DDL还要重要。
1、添加数据,往表中插入数据
(1)insert into 【数据库名.】表名称 values(值列表);
要求为所有列赋值,(值列表)的类型、数量与表结构中列的类型、数量一致
(2)insert into 【数据库名.】表名称(字段列表) values(值列表);
为(字段列表)指定的列赋值,(值列表)的数量与(字段列表)的类型、数量对应
(3)insert into 【数据库名.】表名称 values(值列表1),(值列表2)。。。;
(4)insert into 【数据库名.】表名称(字段列表) values(值列表1),(值列表2)。。。;

mysql> desc t_stu;
±---------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±---------±------------±-----±----±--------±------+
| sid | int(11) | YES | | NULL | |
| sname | varchar(20) | YES | | NULL | |
| gender | char(1) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| score | double | YES | | NULL | |
±---------±------------±-----±----±--------±------+
5 rows in set (0.01 sec)
例如:
insert into t_stu values(1,‘张三’,‘男’,‘1995-05-09’,89.5);

mysql> insert into t_stu values(2,‘李四’,60);
ERROR 1136 (21S01): Column count doesn’t match value count at row 1’

insert into t_stu(sid,sname,score) values(2,‘李四’,60);

insert into t_stu values
(3,‘王五’,‘男’,‘1993-05-09’,80.5),
(4,‘赵六’,‘女’,‘1992-05-09’,82.5),
(5,‘钱七’,‘男’,‘1991-05-09’,82.5);

insert into t_stu(sid,sname,score) values
(6,‘李六’,60),
(7,‘李七’,70);

2、修改
update 【数据库名.】表名称
set 字段名1 = 新值,
字段名2 = 新值,
字段名3 = 新值
。。。
【where 条件】;

说明:如果没有where条件,说明修改所有行的这几个字段的值

例如:修改所有人的成绩为80分
update t_stu set score = 80;

例如:修改李四的成绩为40分
update t_stu set score = 40 where sname = ‘李四’;

例如:把没有填写性别的学生的性别都设置为’男’
update t_stu set gender = ‘男’ where gender <=> null;
update t_stu set gender = ‘男’ where gender is null;

例如:修改所有人的成绩都加10分
update t_stu set score = score + 10;

3、删除数据
delete from 表名称 【where 条件】;

例如:删除所有数据,表结构还在
delete from t_stu;

例如:删除成绩是82.5的学生
delete from t_stu where score = 82.5;

4、查询数据
(1)select * from 表名称;
(2)select * from 表名称 【where 条件】;
(3)select 字段列表 from 表名称 【where 条件】;

例如:查询全部
select * from t_stu;

例如:查询哪些学生没有填写性别
select * from t_stu where gender is null;

例如:查询没有填写性别的学生的姓名
select sname from t_stu where gender is null;

例如:查询没有填写性别的学生的姓名和成绩
select sname,score from t_stu where gender is null;

5、查询时给字段取别名
字段名 as “别名”
其中:
(1)如果"“中的别名没有空格,可以省略”"
(2)这个as可以省略

例如:查询没有填写性别的学生的姓名和成绩,查询结果sname显示姓名,score显示成绩
select sname as “姓名”,score as “成绩” from t_stu where gender is null;

select sname 姓名,score 成绩 from t_stu where gender is null;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值