“SQL语法知识量还是比较少de”
01
—
数据库概述
1.1数据库(DB:DataBase)存储数据的仓库,本质就是一个文件系统,数据库按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
1.2数据库管理系统(DBMS:DataBase Management System)数据库管理系统:指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。
1.3数据库(DB)与数据库管理系统(DBMS)的关系
1.4数据库表
数据库中以表为组织单位存储数据。表中有行和列,分别叫做记录和字段。
1.5常见数据库
常见的数据库管理系统MYSQL: 开源免费的数据库,小型的数据库。已经被Oracle收购了.MySQL6.x版本也开始收费。Oracle: 收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。DB2: IBM公司的数据库产品,收费的。常应用在银行系统中。SQLServer: 微软公司开发的中型的数据库。C#、.net等语言常使用。SQLite: 嵌入式的小型数据库,应用在手机端。常用的关系型数据库:MYSQL Oracle这里使用MySQL数据库。MySQL中可以有多个数据库,数据库是真正存储数据的地方。
也可以在DOS窗口,通过命令完成MySQL服务的启动和停止(必须以管理运行cmd命令窗口)
1.6登录MySQL数据库
MySQL是一个需要账户名密码登录的数据库,登录后使用,他提供了一个默认的root账号,使用安装时设置的密码即可登录。格式1:cmd> mysql –u用户名 –p密码例如:mysql -uroot -proot
02
—
SQLyog
SQLyog是一款MySQL图形化开发工具(主页按钮),仅仅安装一个数据库我们是很难进行操作的,如果不使用python或者图形化开发工具,那么我们只能在小黑窗上进行。在windows系统上,有很多数据库图形化开发工具,SQLyog只是其中一款,比较出名的还有Navicat等。首先,先连接数据库。
进入后,其界面如下:
03
—
SQL概述
数据库是不认识python语言的,但是我们同样要与数据库交互,这时需要使用到数据库认识的语言SQL语句,它是数据库的代码。结构化查询语言(Structured Query Language)简称SQL,是关系型数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持SQL语句,但都有特有内容。
04
—
SQL通用语法
SQL语句可以单行或多行书写,以分号结尾可使用空格和缩进来增强语句的可读性MySQL数据库的SQL语句不区分大小写,关键字建议用大写例如:SELECT * FROM user;可以使用/**/的方式注释,也可以用#号MySQL中常使用的数据如下:
05
—
库操作
当我们具备了SQLyog等图形化工具的时候,我们当然可以在图形化工具界面内通过鼠标导航的方式创建数据库,但是我们使用代码,会更加规范:一、创建数据库(CREATE)
CREATE DATABASE 数据库名;
CREATE DATABASE 数据库名 character set 字符集;
# 创建数据库中数据的编码采用默认编码utf-8 CREATEDATABASEdb1;# 创建数据库并指定数据库中数据的编码CREATEDATABASEdb2CHARACTERSETutf-8
当然这个操作可以在黑窗口(纯代码,不演示),也可在SQLyog中进行。
我们可以看到有一个db1的数据库被创建了出来。
二、查看数据库(SHOW)
查看数据库mysql服务器中的所有数据库SHOW DATABASES;
三、删除数据库(DROP)
drop database 数据库名;
例如:
drop database db1;
可以看到db1数据库被删除。
四、切换、使用数据库(USE)
数据库中表格的增删改查都是基于一个数据库的前提下,假如我们使用的是db1的数据库,但是相关的表格数据在db2数据库里面,SQL语句无法帮我们直接查找出我们需要的数据,因此我们需要先切换数据库。USE 数据库名;
例如:
use db2;
06
—
表操作
第七部分给大家提供了一些简单数据,可以自己尝试。
一、创建表(CREATE)
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
……
)
类型:
varchara(n) 字符串
int 整型
double 浮点
timestamp 时间戳
例如:
CREATETABLEcategory(cidINTprimarykey,#分类IDprimarykey是主键,后面会讲 cnameVARCHAR(100) #分类名称 );
二、查看表(SHOW、DESC)
可以查看数据库中所有的表:SHOW TABLES;
查看表结构:desc 表名;例如:desc category;
三、修改表(只改名字)
rename table 表名 to 新表名;
例如:
# category 改名成 category2RENAMETABLEcategoryTOcategory2;
四、修改表(修改内部结构)
① alter table 表名 add 列名 类型(长度) [约束];
作用:修改表==>添加列
例如:
# 添加一个新的字段为分类描述 varchar(20) ALTER TABLE category ADD kk VARCHAR(20);
② alter table 表名 drop列名;
作用:修改==>删除列
例如:
ALTER TABLE category2 DROP kk;
③alter table 表名 change 旧列名 新列名 类型(长度) 约束;作用:修改表==>修改列名例如:#将cname改成ssnameALTER TABLE category2 CHANGE cname ssname VARCHAR(30);
④alter table 表名 modify列名 类型(长度) 约束;作用:修改表==>修改列的类型长度及约束例如:#描述字段进行修改,类型varchar(50)添加约束notnull, 不允许为空值ALTERTABLEcategory2MODIFYssanmeVARCHAR(20)NOTNULL
⑤ alter table 表名 character set 字符集; (一般不修改)
作用:修改表的字符集
例如:
# 表 category2 的编码表进行修改,修改成 gbk ALTER TABLE category2 CHARACTER SET gbk;
五、删除表(DROP)
drop table 表名;
例如:
drop table category;
六、插入表(INSERT)
向表中插入某些字段:insert into 表 (字段1,字段2,字段3..) values (值1,值2,值3..);如果插入的是所有字段,则前半部分可以不写:insert into 表 values (值1,值2,值3..);
例如:
INSERTINTOcategory2(cid,ssname)VALUES(1,’电器’);INSERTINTOcategory2(cid, ssname)VALUES(2,’服饰’);INSERTINTOcategory2(cid, ssname)VALUES(3, ‘化妆品’);INSERTINTOcategory2(cid, ssname)VALUES(4, ‘书籍’);INSERT INTO category2(cid) VALUES(5);INSERTINTOcategory2(ssname)VALUES(‘建材’);
一条命令插入多条数据:
INSERT INTO category2(cid, ssname)VALUES (1, ‘电器’), (2, ‘服饰’), (3, ‘化妆品’), (4, ‘书籍’), (5, ‘建材’);
七、更新表(UPDATE)
用来修改指定条件的数据,将满足条件的记录指定列修改为指定值更新所有记录的指定字段update 表名 set 字段名=值, 字段名=值……;更新符合条件记录的指定字段update 表名 set 字段名=值, 字段名=值,… where 条件;
注意:列名的类型与修改的值要一致.修改值得时候不能超过最大长度.除了数值类型外,其它的字段类型的值必须使用引号引起
例如:
#将第五个建材改成纸张UPDATE category2 SET ssname = ‘纸张’ WHERE cid=5
八、删除记录(DELETE)
① 删除满足条件的记录delete from 表名 where 条件;例如:DELETE FROM category2 WHERE cid=5;
②删除表中所有记录delete from 表名;
07
—
数据提供
CREATE TABLE product( pid INT PRIMARY KEY, pname VARCHAR(20), price DOUBLE, category_id VARCHAR(32));
INSERT INTO product(pid,pname,price,category_id) VALUES(1,’联想’,5000,’c001′),(2,’海尔’,3000,’c001′),(3,’雷神’,5000,’c001′),(4,’JACK JONES’,800,’c002′),(5,’真维斯’,200,’c002′),(6,’花花公子’,440,’c002′),(7,’劲霸’,2000,’c002′),(8,’香奈儿’,800,’c003′),(9,’相宜本草’,200,’c003′),(10,’面霸’,5,’c003′),(11,’好想你枣’,56,’c004′),(12,’香飘飘奶茶’,1,’c005′),(13,’果9′,1,NULL);
SQL(一)——MySQL安装教程