MYSQL数据库重要知识点及案例

今日注意:
1.– 后面要加个空格,否则错误乱码,颜色要变成绿色才可以
2.命令行要执行的话,选中你需要执行的那行代码,在按F9键,或者蓝色箭头图标,如果是表格,就点击命令行的表数据,在点击右侧绿色刷新按钮
3.调节字体大小,在工具中-首选项-字体编译器设置-SQl编译器-更改即可
4.代码一句写完后加;,
5.转大写按tab键,
6.关键字写错,就不是大写,而且不是蓝色。
7.如果在写代码的时候,你已经写了诸如字段类型等代码,就不能在代码上直接修改,和java不一样,需要把该列删除,在查询表的信息,看错误信息还在不在,
8.值的类型是字符串或者是日期类型,使用单引号引起来。

第一部分:今日重要内容概述和技术操作

1.什么是数据库(MySQL)
*MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracls旗下产品。MySQl最流行的
关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Managemeng System,关系数据库管理系统)
应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有的数据放在一个大仓库中,
这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,
由于其体积小、速度快、总体拥有成本低,尤其是开发源代码的特点,现在很多网站的开发都选择MySQL作为网站数据库。

2.什么是关系型数据库
*关系型数据库存放的是实体之间的关系

3.常见的关系型数据库
*MySQL Oracle SQLServer DB2 SyBase

4.什么是服务器
*服务器要从硬件和软件两个方面来说
*硬件:指的就是一台计算机
*软件:需要在这台电脑上安装数据库服务器

5.MySQL数据库存储方式的描述
*一台电脑如果安装了MySQL,这台电脑称为是MySQL数据库服务器
*一台数据库服务器中会创建很多数据库(一个项目会创建一个数据库)。在数据库中会创建很多张表(一个实体会创建一个表)。
在表中会有很多记录(一个对象的实例会添加一条新的记录)。

6.什么是SQL(概念)
*结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,
用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

7.SQL的分类
*DDL 数据定义语言
create drop alter… 创建、删除、修改
*DCL 数据控制语言
grant if…
*DML 数据操纵语言
insert update delete 添加、修改、删除
*DQL 数据查询语言
select 查询

8.SQL对数据库进行操作
*创建数据库
create database 数据库名称; 【示例:create database itheima;】

*查看数据库
    show databases;         【database后面有个s,查看所有的数据库,所有databases后面不能有数据库名称】
    *查看某个数据库的定义信息
    show create database 数据库名称;     【示例:show create database itheima;】

*修改数据库
    alter database 数据库名称 character set 字符集 collate 校对规则; 
    (collate 校对规则可以不写,不写系统会默认校对规则)  【示例:alter database itheima character set utf8;】

*删除数据库
    drop database 数据库名称;    【示例:drop database itheima;】

*其他数据库操作
*切换(选择、使用)数据库
use 数据库名称; 【示例:use itheima;】

*查看当前正在使用的数据库
    select database();

9.SQL对数据库表进行操作—SQL创建表
*语法:
create table 表名称(字段名称 字段类型(长度) 约束,字段名称 字段类型(长度) 约束…);
*字段类型
一个实体对应一个表,一个实体属性对应表的一个字段。
*Java中的类型 *MySQL中的类型
byte/short/int/long(整数类型) tinyint/smallint/int/bigint
float float
double double
boolean bit 0表示 true 1表示 false
char/String(字符和字符串类型) char和varchar类型

*char和varchar的区别:
char代表是固定长度的字符或字符串。 【示例: 定义类型char(8),向这个字段存入字符串hello,hello为5个字符,那么数据库使用三个空格将其补全。 ,超过8个就报错了】
varchar代表的是可变长度的字符串。 【示例:定义类型varchar(8), 向这个字段存入字符串hello,那么存入到数据库的就是hello。】

*Date (日期类型) date/time/datetime/timestamp data有日期没时间 time有时间没日期
datatime和timestamp都是既有日期又有时间
*datetime和timestamp区别
datetime就是既有日期又有时间的日期类型,如果没有向这个字段中存值,数据库使用null存入到数据库中
timestamp也是既有日期又有时间的日期类型,如果没有向这个字段中存值,数据库使用当前的系统时间存入到数据库中。

        *File   (文件)                                BLOB/TEXT           BLOB为二进制          TEXT为文档

  *约束
        约束作用:保证数据的完整性 【比如用户名和密码不能为空】

        单表约束分类:
        [1]主键约束:primary key 主键约束默认就是唯一 非空的      【一般一个表里面只有一个主键约束】
        [2]唯一约束:unique
        [3]非空约束:not null  【该字段可以出现重复的值,但是不能为空】

  *建表示例语句    【建表前要有数据库】
        ***语法: create table 表名称(字段名称 字段类型(长度) 约束,字段名称 字段类型(长度) 约束…);

        create database web_test1;
        use web_test1;     【先使用数据库,在该数据库中创建表】
        create table user(   【table理解成表  create table 表名】
            id int primary key auto_increment,   【给一个唯一的id(编号),id名唯一】auto_increment自动增长的约束(表格编号自动增长)
            username varchar(20) unique,
            password varchar(20) not null,  【添加多个中间用逗号隔开既可以了】
            age int,            【注意是逗号不是分号】
            birthday date    【最后一个不需要加逗号】
        );

10.SQL对表的操作
*SQL查看表
查看某个数据库下的所有的表
show tables; 【table后面有个s】
查看某个表的结构详细信息
desc 表名; 【示例:desc user;】—表名随便取

*SQL删除表
    直接彻底删除表格(彻底删除表格,找不到任何该表格信息)
        drop table 表名;  【示例:drop table user;】
    摧毁表(把表格删除,重新创建一个一模一样的表格,但是里面的内容没有了)
        truncate table 表名;  【示例:truncate table user;】

*SQL修改表
    *修改表:添加列
     alter table 表名 add 列名 类型(长度)约束;        【示例:alter table user add image varchar(100);】---约束可以不写,系统默认自带约束
    *修改表:修改列类型,长度和约束
     alter table 表名 modify 列名 类型(长度) 约束;    【示例:alter table user modify image varchar(150);】
    *修改表:删除列
     alter table 表名 drop 列名;    【示例:alter table user drop age;】
    *修改表:修改列名称
     alter table 表名 change 旧列名 新列名 类型(长度)约束;    【示例:alter table user change image pic varchar(150);】
    *修改表:修改表名(比较少用)
     rename table 原表名 to 新的表名;  【示例:rename table user to employee;】
    *修改表:修改表的字集(比较少用)
     alter table 表名 character set 字符集;      【示例:alter table employee character set gbk;】

第二部分:课外老师添加SQL对数据库和表的语法操作部分

1.
– 创建itheima数据库
CREATE DATABASE itheima;

– 选择itheima数据库
USE itheima;

– 查看现有的所有数据库
SHOW DATABASE;

– 删除数据库
DROP DATABASE itheima;

– 创建数据表
CREATE TABLE student(
sid INT PRIMARY KEY AUTO_INCREMENT, 【create table 表名称(字段名称 字段类型(长度) 约束,字段名称 字段类型(长度) 约束…);】
sname VARCHAR(20) NOT NULL,
sage INT NOT NULL,
score DOUBLE
);

– 查看目前itheima数据库中所有的数据表
SHOW TABLES; 【查看数据库所有数据表,table后面有个s】

– 查看某个表的详细信息
DESC student;

– 修改表结构:添加一个tel列
ALTER TABLE student ADD tel VARCHAR(30);

– 修改表结构:将tel列的数据类型修改为int
ALTER TABLE student MODIFY tel INT;

– 修改表结构:将tel列改名为newtel列
ALTER TABLE student CHANGE tel newtel VARCHAR(40) NOT NULL;

– 修改表结构:将newtel列删除
ALTER TABLE student DROP newtel;

– 删除数据表
DROP TABLE student;

2.
– 创建itheima的数据库
CREATE DATABASE itheima;

– 选择itheima数据库
USE itheima;

– 创建一个学生表
CREATE TABLE student1(
id INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(20) UNIQUE,
sage INT NOT NULL,
score DOUBLE,
birthday DATE 【date最后一个拼音是e不是a】
);

– 操作数据:添加数据
/*student1
insert into 表名 (字段名1,字段名2,…) values (值1,值2,…);
insert into 表名 values (所有的字段的值);
*/
INSERT INTO student1(id,sname,sage,score,birthday)VALUES(1,’张三’,20,66.6,’2017-01-03’); 【每个字段之间用逗号隔开,姓名、日期用单冒号标识】
INSERT INTO student1 VALUES(2,’李四’,21,77.7,’2017-01-04’);
INSERT INTO student1 VALUES(NULL,’王五’,22,88.8,’2017-01-05’); – null用来表示主键自动增长,可以批量添加

INSERT INTO student1 VALUES(NULL,’赵六’,23,90,’2017-01-06’),
(NULL,’周七’,24,91,’2017-01-07’),
(NULL,’田八’,25,92,’2017-01-08’); – null可以用来表示自动增长,在这里表示id号自动增长,null可以批量添加,中间用逗号隔开就行

– 操作数据:查询数据
/*
查询所有的数据:select * from 表名;
查询名称为周七的记录:select * from student where sname=’周七’;
*/
SELECT*FROM student1; – 查询到所有的表里面的数据 *表示所有的
SELECT*FROM student1 WHERE sname=’周七’; – 查询姓名为周七的数据
SELECT sname,sage FROM student1 WHERE sname=’周七’; – 只能看到周七的姓名和年龄

– 操作数据:修改数据
/*
修改数据,将王五的年龄修改为35岁
update 表名 set 字段=修改的值 where 字段=查询的值;
*/
UPDATE student1 SET sage=35 WHERE sname=’王五’; 【where表示具体的条件,或者可以理解成哪,比如该题,获取哪个的姓名,等于王五】【如果重名,就获取唯一的id,就是id=3】
UPDATE student1 SET sage=35; 【修改指定字段(列名)所有的值】

– 操作数据:删除记录
/*
将田八记录删除掉
delete from 表名 where 字段=值;
*/
DELETE FROM student1 WHERE sname=’田八’;

猜你喜欢

转载自blog.csdn.net/pf503603/article/details/81605942
今日推荐