资讯专栏INFORMATION COLUMN

操作数据库表

Yumenokanata / 3365人阅读

摘要:数据库操作语言主要对表中的数据库进行增删改增插入一条记录表名列名列名值值注意列名可以在表中选择一列或者几列后面的值必须和前面的列一一对应在中除了类型的数据其他数据必须用或者引起来我们推荐用单引号如果要插入的数据所有字段都有那么以上的列名列名

/*

DML:数据库操作语言

    主要对表中的数据库进行 增删改

****增:插入一条记录

    insert into 表名 (列名1,列名2..) values (值1,值2..)

    注意: 1.列名可以在表中选择一列或者几列

        2.后面的值 必须和前面的列 一一对应

        3.在SQL中除了int类型的数据,其他数据必须用""或者""引起来

            我们推荐用单引号

        4.如果要插入的数据所有字段都有,那么以上的

           (列名1,列名2..) 可以省略

****删:删除一条记录

    格式: delete from 表名;//删除表中的所有记录

        delete from 表名 where条件;

****改:修改表中的记录信息

    update 表名 set 字段名 = 值;//把所有记录的该列都改了

    update 表名 set 字段名 = 值 where条件;

                

*/

向students 表中插入一个学生信息(id:001 name:李四 )

INSERT INTO students (sid,NAME) VALUES ("001","李四");

向students 表中插入一个学生信息(id:002 name:王五 age:18 )

INSERT INTO students (sid,NAME,sage) VALUES ("002","王五",18);

INSERT INTO students VALUES ("003","赵六",28);

删除students表中的记录

DELETE FROM students;

删除某一条记录

DELETE FROM students WHERE sid=3;# 这里条件sid=3不能写成 sid==3,sid.equals(3);

修改students表,把sage这一列的值 改为20

UPDATE students SET sage=20;

修改students表,把王五的sage这一列的值 改为 50

UPDATE students SET sage = 50 WHERE NAME="王五";# sid = 2

/*

DQL:查询数据库中的数据

    基本格式:

    select [distinct] *|列名1,列名2 from 表名;# 查询表中的所有列数据

    带有条件的查询 用关键字 where

    

    


*/

基本查询

SELECT * FROM product;

SELECT pname,price FROM product;

SELECT price FROM product;

SELECT DISTINCT price FROM product;

基本查询练习 1.查询所有的商品.

SELECT * FROM product;

2.查询商品名和商品价格.

SELECT pname,price FROM product;

3.去掉价格重复值.

SELECT DISTINCT price FROM product;

4.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.

SELECT price+10 FROM product;

5.别名查询.使用的关键字是as(as可以省略的).

SELECT price+10 AS 打折价格 FROM product;

SELECT price+10 打折价格 FROM product;

条件查询练习 查询商品名称为“花花公子”的商品所有信息:

SELECT * FROM product WHERE pname="花花公子";

查询价格为800商品

SELECT * FROM product WHERE price=800;

查询价格不是800的所有商品

SELECT * FROM product WHERE price <> 800;

SELECT * FROM product WHERE price > 800 OR price < 800;

SELECT * FROM product WHERE NOT (price=800);

查询商品价格大于60元的所有商品信息

SELECT * FROM product WHERE price > 60;

SELECT * FROM product WHERE NOT (price <= 60);

查询商品价格在200到1000之间所有商品

SELECT * FROM product WHERE price >= 200 AND price <=1000;

SELECT * FROM product WHERE price BETWEEN 200 AND 1000;

查询商品价格是200或800的所有商品

SELECT * FROM product WHERE price IN (200,800);

SELECT * FROM product WHERE price = 200 OR price = 800;

查询含有"霸"字的所有商品

SELECT * FROM product WHERE pname LIKE "%霸%";

查询以"香"开头的所有商品

SELECT * FROM product WHERE pname LIKE "香%";

查询第二个字为"想"的所有商品

SELECT * FROM product WHERE pname LIKE "_想%";

查询没有分类的商品

SELECT * FROM product WHERE category_id IS NULL;

SELECT * FROM product where category_id = null;# 错误的 判断空 不能用"=" 查询有分类的商品

SELECT * FROM product WHERE category_id IS NOT NULL;

SELECT * FROM product WHERE category_id <> NULL;# 错误的 判断不为空 不用"<>" 查询所有价格大于2000的电脑商品(catetory_id是c001) 或者价格大于2000的服装商品(catetory_id是c002)**

SELECT * FROM product WHERE (price > 2000 AND category_id = "c001")

    OR (price > 2000 AND category_id = "c002");

    

SELECT * FROM product WHERE price > 2000 AND category_id IN ("c001","c002");

/*

SQL语言的分类:

DDL:数据库定义语言

    他主要是对数据库,数据库表进行创建删除维护等

    关键字:create(创建),alter(修改),drop(删除), show(查)

        

DCL:数据库操纵/控制语言

    控制数据库访问权限

DML:数据库操作语言

    它主要是对表中的数据进行 增删改

    关键字:insert(增加),delete(删除),update(修改)等

    

DQL:数据库查询语言

    它主要是对表中的数据进行 查询

    关键字:select(查询) from(从)  where(条件)

    

*/

注释

-- 注释

SELECT * FROM users;

/*

DDL:数据库定义语言

    主要是操作数据库,操作数据库表

DDL之操作数据库:

    对数据库进行增删改查

****增:创建一个数据库

    create database 数据库名;//默认编号,安装的时候您选择的那个编号

    create database 数据库名 charset 编码;

删:删除一个数据库

    drop database 数据库名;

修:修改数据库名字很麻烦 

    修改正在使用的数据库

    use 数据库名;

查:

  查询正在使用的数据库:

    select database();

  查询所有的数据库

    show databases;

    


*/

增:创建一个数据库

CREATE DATABASE db297;

CREATE DATABASE db2971 CHARSET utf8;

删:删除一个数据库

DROP DATABASE db2971;

修改正在使用的数据库

USE jjj;

查询正在使用的数据库

SELECT DATABASE();

查询所有数据库

SHOW DATABASES;

查询某一个数据的详细信息

SHOW CREATE DATABASE db297;

/*

DDL之数据库表

对数据库表进行增删改查

****增:创建一个表

create table 表名(

    字段名1 数据类型1(长度) [约束],

    字段名2 数据类型2(长度) [约束]

    );

删:删除表

    drop table 表名;

查:查看表

    desc 表名; 查看一个表的详细信息

    show tables;查看所有的表

改:改名字

    rename table 表名 to 新表名;


*/

创建一个表,学生表(编号,姓名,年龄)

CREATE TABLE student(

sid INT PRIMARY KEY, -- 主键约束

sname VARCHAR(30),

sage INT

);

删除 student表

DROP TABLE student;

查看一个表的详细信息

DESC student;

查看所有的表

SHOW TABLES;

修改表的名字

RENAME TABLE student TO students;

/*

DDL之修改表中的列

    增删改查

增:增加一个列

    alter table 表名 add 列名 类型(长度) [约束]

删:删除一个列

    alter table 表名 drop 列名;

查:查看表的数据结构

    desc 表名;

改:修改列

    可以修改的名字,类型,约束等..

    修改列名:

    alter table 表名 change 旧列名 新列名 类型(长度) 约束; 

    修改列的类型和约束

    alter table 表名 modify 列名 类型(长度) 约束;

    修改表的字符集

    alter table 表名 character set 字符集;(一般不修改)



        


*/

要给students表 添加一列 "电话"

ALTER TABLE students ADD phone VARCHAR(30);

要把students表中 "电话"这一列删除

ALTER TABLE students DROP phone;

查看students表有多少列 分别是什么

DESC students;

修改列名

ALTER TABLE students CHANGE sname NAME VARCHAR(30);

修改列的类型和约束

ALTER TABLE students MODIFY NAME VARCHAR(50);

/*

三个知识点:

1.介绍两个约束

    主键约束: primary key 被主键约束的列必须有唯一,而且不能为空

    自动增长约束:auto_increment 被自动增长约束的列,值可以不用管



2.删除表所有数据的两种方式(面试题)

    delete from 表名;# 删除表的所有数据,但是自动增长值不会重置为1

    truncate  table  表名;# 删除表的所有数据,并且重置自动增长值为1

    truncate的底层,是先摧毁表,然后再重建表

3.乱码问题

    在DOS创建 查询uft8编码的数据库数据时,会出现乱码

    解决方案:

        临时方案:

        set names gbk;//临时地把告诉数据库 我们用gbk来查询

        永久方案:修改 my.ini的配置文件(不建议)

        

            

    




*/

创建一张表,用户(编号,用户名,密码)

CREATE TABLE users(

uid INT PRIMARY KEY AUTO_INCREMENT,# 自动增长默认是从1开始

uname VARCHAR(30),

upass VARCHAR(30)

);

插入数据

INSERT INTO users (uname,upass) VALUES ("王老","123321");

INSERT INTO users (uname,upass) VALUES ("李四","123");

删除表中的所有数据

DELETE FROM users;

INSERT INTO users (uname,upass) VALUES ("王五","1234");

使用truncate删除表中的所有数据

TRUNCATE TABLE users;

INSERT INTO users (uname,upass) VALUES ("赵六","12345");

/*

1.DDL:操作数据库中对象,数据库,表,列

***创建数据库

    create database 数据库名;# 以默认的编码创建数据库

    create database 数据库名 charset 编码名;

    create database 数据库名 character set 编码名;

***创建表

    create table 表名(

        字段1 数据类型(长度) [约束],

        字段2 数据类型(长度) [约束]

        );    

    约束:

        主键约束:primary key,该列的值必须唯一,并且不为空

        自动增长列约束:auto_increment 该列值交给数据库维护

2.DML:操作数据库表中数据,对数据进行增删改

****添加一条记录

    insert into 表名 (列名1.列名2..) values (值1,值2..);

    注意:

        1.列名和后面的值 必须一一对应

        2.(列名1.列名2..) 这里的列名可以写一个或者多个

        3.如果是全列名,可以省略不写

        4.如果值是数字类型的可以不加"",否则必须加上"" 或者 ""

****删除一条记录

    delete from 表名;# 删除表中所有数据,不会重置自动增长值

    truncate table 表名;#删除表所有数据,先把表摧毁再重建

    delete from 表名 where 条件;# 这里条件和查询共用

    

****修改一条记录

    update 表名 set 字段名=值,字段名=值;#表中所有记录的字段都修改了

    update 表名 set 字段名=值,字段名=值 where 条件;# 这里条件和查询共用



3.DQL:操作数据库表中数据,对数据进行查询

***基本查询:

    格式:

    select distinct *|字段1,字段2 from 表名;

***条件查询

    比较条件

        >,<,>=,<=,<>,=

        between xx and xx (含头行尾)

        in (值1,值2)

        like "_a%" 模糊查询

        is null ,is not null 判断空或者不空

    逻辑条件

        与 and

        或 or

        非 not

*/

点滴记录,共同进步。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32349.html

相关文章

  • 数据结构之线性(手绘版)

    摘要:就可以称之为线性表。这种可以根据位序得到数据元素也是一种很重要的线性表操作。瀏除线性表中第个位置元素并用返回其值。线性表的长度是线性表中数据元素的个数随着线性表插入和删除操作的进行这个量是变化的。 目录 一,写在前面 二,线性表的定义 三,线性表的抽象数据类型 四,线性表的顺序存储结构 4....

    Maxiye 评论0 收藏0
  • Mysql的基本语句操作

    摘要:本篇文章主要介绍一下的基本操作。查的简单查询语法字段,字段,字段表名称条件若查询全表信息则将所有字段名换为通配符。 本篇文章主要介绍一下Mysql的基本操作。 一、关于数据库的基本操作 创建数据库 ->create database + 数据库名称 查看数据库 ->show databases 删除数据库 ->drop database + 数据库名称 使用数据库 -...

    _ivan 评论0 收藏0
  • Mysql的基本语句操作

    摘要:本篇文章主要介绍一下的基本操作。查的简单查询语法字段,字段,字段表名称条件若查询全表信息则将所有字段名换为通配符。 本篇文章主要介绍一下Mysql的基本操作。 一、关于数据库的基本操作 创建数据库 ->create database + 数据库名称 查看数据库 ->show databases 删除数据库 ->drop database + 数据库名称 使用数据库 -...

    daryl 评论0 收藏0
  • GitHub 开源的 MySQL 在线更改 Schema 工具

    摘要:今天我们开源了内部使用的一款不需要触发器支持的在线更改表结构的工具开发是为了应付在生产环境中面临的持续的不断变化的在线修改表结构的需求。所有现存的在线表结构修改的工具都是利用了的触发器来执行的,这种方式有一些潜藏的问题。 MySQL在线更改schema的工具很多,如Percona的pt-online-schema-change、 Facebook的 OSC 和 LHM 等,但这些都是基...

    Ocean 评论0 收藏0
  • 数据结构实验:单链的基本操作&amp;&amp;基于线性的图书管理系统

    摘要:在此基础上,从算法思想及时间空间复杂度的角度对代码进行优化,并获得关于单链表的基本操作的最优化代码。预期结果完成实验指导书中所要求的具体实验内容,并对其进行优化。 目录 实验名称 实验目的 实验内容 实验具体内容: 实验需求分析: 预期结果: 实验方法 1. 单链表的存储结构和操作接口 2...

    CollinPeng 评论0 收藏0
  • 算法学习之数据结构线性、堆、栈

    摘要:栈底是固定的,而栈顶浮动的如果栈中元素个数为零则被称为空栈。入栈将数据保存到栈顶。链栈链栈是指栈的链式存储结构,是没有附加头节点的运算受限的单链表,栈顶指针是链表的头指针。 一、喜欢单挑线性表 1.线性表的特性 线性表是一个线性结构,它是一个含有n≥0个节点的有限序列。在节点中,有且仅有一个开始节点没有前驱并有一个后继节点,有且仅有一个终端节点没有后继并有一个前驱节点。其他的节点都有且...

    huaixiaoz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<