A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Mr.Fox 中级黑马   /  2017-12-4 16:14  /  1337 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家好,经过近两个月的学习,我们已经在通往颈肩腰腿痛的道路上渐行渐远,今天想将自己一点小小的学习见解分享一下,希望可以同各位共同进步,有不足之处还请见谅.
熟悉数据库的基本操作对于目前我们的学习是尤为重要的那么什么是数据库呢?该如何对数据库进行操作呢?
                数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
         什么是数据库管理系统
                数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,
                对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

★我们可以把数据库看成是简单的学生宿舍,而数据管理系统就是宿管阿姨,目前我们使用的数据库为MYSQL,操作数据库的工具是SQLyog,操作起来简单粗暴...
对于操作数据库语言可以分为四种:
                * 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等
                * 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等
                * 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
                * 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等
对于数据库的操作可以分为,对(库>表结构>表元素)的操作,具体主要包括增删改查等.
1.对库的操作:
        -- 创建 新的数据库
CREATE DATABASE 数据库名;
-- 创建 新的数据库并规范其所用字符类型
CREATE DATABASE 数据库名 CHARACTER SET utf8;
-- 查看 所有数据库
SHOW DATABASES;
-- 查看 某个数据库
SHOW DATABASE 数据库名;
-- 切换 数据库
USE 数据库名;
-- 删除 数据库
DROP DATABASE 数据库名;
-- 查看 正在使用的数据库
SELECT DATABASE;
-----------------------------------------------------------------------------------
2.对表结构的操作
-- 创建 表结构
CREATE TABLE users(
        username VARCHAR(20) PRIMARY KEY NOT NULL AUTO_INCREMENT ,
        PASSWORD VARCHAR(20) NOT NULL
        -- primary key(username)主键的另一种命名方式
        -- alter table users drop primary key(去除主键)
);
-- 更改 表名
RENAME TABLE suerss TO users;
-- 查看 所有的表结构(同一数据库下)
-- 查看 表属性
DESC users;
-- 查看 表内容
SELECT * FROM users;
-- 删除 表
DROP TABLE users;

/* 修改表结构 --  对列操作 ALTER*/
-- 添加 列   alter table 表名 ADD 列名 类型(长度) 约束
ALTER TABLE users ADD uname VARCHAR(10)NOT NULL;
-- 修改 列属性 alter table 表名 modify 列名 新类型(长度) 新约束
ALTER TABLE users MODIFY uname INT NOT NULL;
-- 修改 列名 alter table 表名 change 列名 新列名 (新)类型(长度) (新)约束
ALTER  TABLE users CHANGE uname NAME VARCHAR(10) NOT NULL;
-- 删除 列   alter table 表名 drop 列名;
ALTER TABLE users DROP NAME;
-- 改变 表的字符集
ALTER TABLE users CHARACTER SET gbk;
3.对表元素的操作
/*对表元素进行操作*/
-- 添加(插入)  表元素 insert into 表名(列名1,列名2...) values(值1,值2...)
--                    insert into values(值1,值2,值3...)(值1,值2,值3...)...;
INSERT INTO users(username,PASSWORD) VALUES('d','12'),('f','12');
INSERT INTO users VALUES('e','5');
-- 修改(更新) 表记录 update 表名 set 字段名=值,字段名=值;  全部修改
--                   update 表名 set 字段名=值 where 条件;
UPDATE users SET username='a',PASSWORD='12'WHERE PASSWORD='3';
-- 删除 表记录 delete from 表名[where 条件]
DELETE FROM users WHERE username='d';
-- 查看 表记录
/*查询指定字段信息:select 字段1,字段2,...from表名;
              例:select id,name from sort;
查询表中所有字段:select * from 表名;
              例:select * from sort;
              别名可以给表中的字段,表设置别名.当查询语句复杂时,使用别名可以极大的简便操作.
表别名格式:
        select * from 表名 as 别名;或select *from 表名 别名;
        例:select * from sort as st;
列别名格式:
        select 字段名 as 别名 from 表名;或select 字段名 别名 from 表名;
        例:select money as m from sort;或select money m from sort;*/
SELECT PASSWORD FROM users;
SELECT PASSWORD AS pass FROM users ;
SELECT PASSWORD FROM users WHERE PASSWORD>5;
/*★★while语句表示条件过滤,不满足不操作,多用于数据的查询与修改.
       
        格式 :select 字段  from 表名  where 条件;       
while条件的种类如下:
比较运算符        >  <  <=   >=   =  <>        大于、小于、大于(小于)等于、不等于
        BETWEEN  ...AND...         显示在某一区间的值(含头含尾)
        IN(set)         显示在in列表中的值,例:in(100,200)
        LIKE 通配符        模糊查询,Like语句中有两个通配符:
% 用来匹配多个字符;例first_name like ‘a%’;
_ 用来匹配一个字符。例first_name like ‘a_’;
        IS NULL         判断是否为空
is null; 判断为空
is not null; 判断不为空
逻辑运算符        and        多个条件同时成立
        or        多个条件任一成立
        not        不成立,例:where not(salary>100);
*/



-- 排序 order by  (放置在select语句的最后)
/*
格式 :select * from 表名 order by 字段 asc(默认);
ASC 升序(默认) DESC(降序)
*/
SELECT * FROM users ORDER BY price ASC;-- 查询所有元素,按升序进行排序
SELECT * FROM users WHERE username LIKE '%dd%' ORDER BY price DESC;-- 查询username里包含dd并降序显示结果

-- 聚合
/*
count:统计指定列不为NULL的记录行数;
sum:计算指定列的数值和,如果指定列;
max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串类型不是数值类型,那么计算结果为0排0序运算;
min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;*/
SELECT COUNT(price) FROM users;-- 查询users内共有几列
SELECT SUM(price) FROM users;-- 算出所有price的和
SELECT MAX(price) FROM users;-- 算出所有price中的最大值
SELECT MIN(price) FROM users WHERE username LIKE '%dd%';-- 算出名字中包含dd的元素所有price中的最小数
SELECT AVG(price) FROM users;-- 算出所有price不为null的元素的平均值

-- 分组 SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件;
SELECT SUM(price) AS'getsum',address FROM users  GROUP BY address HAVING getsum>20;
-- 求出河南和安徽两省各自的price总和>20的显示出来并进行升序分组排序

其中重点掌握的是表元素的查询,以上就是我所总结出来的知识点,欢迎各位共同进步,共同发展.

评分

参与人数 2技术分 +6 黑马币 +8 收起 理由
皖哥哥 + 6 学员的总结写的很好
SimpleAndnavie + 8 很给力!

查看全部评分

11 个回复

倒序浏览
回复 使用道具 举报
好长好长的总结啊
回复 使用道具 举报
好长
回复 使用道具 举报
厉害
回复 使用道具 举报
程序员小虾米 来自手机 初级黑马 2018-1-25 14:43:47
地板
666666666666
回复 使用道具 举报
给力
回复 使用道具 举报
莫名其妙的觉得很牛逼
回复 使用道具 举报
回复 使用道具 举报
小皖妹妹 来自手机 黑马粉丝团 2018-1-25 17:04:23
10#
(๑ˊ͈ᐞˋ͈)ƅ̋
回复 使用道具 举报
6666
回复 使用道具 举报
点个赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马