欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java基础26--sql规范&sql的分类&sql的分类

程序员文章站 2022-07-06 13:38:56
Java基础26–Mysqlsql规范SQL语句的规范:1、mysql对于SQL语句不区分大小写,SQL语句关键字尽量大写show databases;SHOW DATABASES;至于表中的数据是否区分大小写,和字符编码,和数据类型,和校对规则有关。ci:不区分大小写 (case ignore) mysql一般默认cics:区分大小写bin:最严格,区分大小写,以二进制值存储2、在sql语句中的值,除了数值类型(整数、小数),其他的类型,都使用’ ’ (单引号)引...

Java基础26–Mysql

sql规范

SQL语句的规范:

  • 1、mysql对于SQL语句不区分大小写,SQL语句关键字尽量大写
    show databases;
    SHOW DATABASES;
    至于表中的数据是否区分大小写,和字符编码,和数据类型,和校对规则有关。
    ci:不区分大小写 (case ignore) mysql一般默认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的分类

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

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

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

例如:use test;

3、创建一个数据库
create database 数据库名;
Java基础26--sql规范&sql的分类&sql的分类
所在文件目录

例如:
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 表名称; (desc description缩写)

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:增删改查 对应程序员来说,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;

单个数据库的备份

二、导出数据库备份
不用登录,直接在命令行
mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql
例如:
mysqldump -hlocalhost -P3306 -uroot -p123456 --database test > D:\mysqldb.sql
Java基础26--sql规范&sql的分类&sql的分类
Java基础26--sql规范&sql的分类&sql的分类

##mysqldump是个命令,在mysql安装目录下的bin文件夹里
Java基础26--sql规范&sql的分类&sql的分类

本文地址:https://blog.csdn.net/renVictory/article/details/108999156