39#MySQL&SQL语言

数据库概述

  • 数据库是存储数据的仓库,本质是一个文件系统,数据按照指定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除以及查询操作。
  • 数据库管理器(DataBase Management System,DBMS) 是指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性,用户通过数据库管理系统访问数据库中表内的数据
  • 常见的数据库:
MySQL 开源免费,6.x版本收费;被Oracle收购
Oracle 大型;Oracle收购sun和mysql
DB2 IBM;收费;常用于银行系统
SQLServer Microsoft;中型;常用于C#,.net语言
SyBase 已经淡出舞台;提供建模工具:PowerDesigner
SQLite 嵌入式小心数据库;手机端
  • DB与DBMS的关系

数据库表

  • 数据库中以表为组织单位存储数据
  • 类Java:表类似于类,表中字段类似于类中属性,记录类似于对象

表数据

  • 一行行的信息被称为记录

SQL语句概述

  • 概念:结构化查询语句(Structured Query Language)简称SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
  • SQL语句分类:
数据定义语言DDL create,alter,drop
数据操作语言DML insert,delete,update
数据控制语言DCL 访问权限安全级别创建用户
数据查询语言DQL select,from,where
  • SQL语句的规范:分号结尾;不区分大小写;/**/表示注释
  • MySQL中常用的数据类型
    • int:整形
    • double:浮点型
    • varchar:字符串
    • date:日期

SQL语句之数据库操作语句:

  • 创建数据库
create database 数据库名;
create database 数据库名 character set 字符集;// 默认是utf-8
  • 查看数据库
show databases;
show create database 数据库名;
  • 删除数据库
drop databases 数据库名;
  • 切换数据库
use 数据库名;
  • 查看当前数据库
select database();

SQL语句之表操作语句:

  • 创建表
create table 表名{
   列名1 数据类型 约束,
   列名2 数据类型 约束,
   列名n 数据类型 约束
};
  • 主键约束:保证列数据的唯一性和非空性
create table 表名{
   列名1 数据类型 primary key auto_increment,
   列名2 数据类型 约束,
   列名n 数据类型 约束
};
  • 查看数据库中的所有表
show tables;
  • 查看表结构
desc 表名;
  • 删除表
drop table 表名;
  • 修改表名
rename table 表名 to 新表名;
  • 修改表的字符集
alter table 表名 character set 字符集;
  • 修改表之添加列/修改列/删除列/修改列名
alter table 表名 add 列名 类型 约束;
alter table 表名 modify 列名 类型 约束;
alter table 表名 drop 列名;
alter table 表名 change 旧列名 新列名 约束;
  • 向表中添加数据:
insert into 表名(列名1,列名2...) values (值1,值2...);
insert into 表名(列名) values (值);
insert into 表名 values (全列值);
insert into 表名 (列名1,列名2) values (值1,值2),(值1.值2);
  • 更新表数据
    • 条件
      • =; <>; >=; &&; ||; ! ;in (n1,n2,n3...); not in; and; or; between; 
update 表名 set 列1=值1, 列2=值2 where 条件;
  • 删除表中的数据
delete from 表名 where 条件;
delete from 表名; /*一条一条的删除,不清空auto_increment 记录数*/
truncate table 表名; /*直接将表删除,重新建表,aoto_increment将重置为0,重新开始;*/
drop table 表名; /*删除整个数据表*/

DOS操作数据乱码

  • 原因:mysql的客户端默认编码为utf-8,而系统的cmd窗口是gbk
  • 解决:
    • 修改mysql客户端的编码
    • 修改mysql安装目录下面的mu.ini文件
      • default-character-set=gbk 客户端编码设置
      • character-set-servlet=utf8 服务器端编码设置

SQL查询语句

  • 查询指定列
select 列名1,列名2 from 表名;
select * from 表名;
select distinct 列名1,列名2 from 表名;
  • 起临时别名
select 列名 as '临时名称' from 表名; // 列别名
select 列名 '临时名称' from 表名; // 列别名
select * form 表名 as '临时名称'; //表别名
  • 队列进行运算
select name,price+10000 as'SUM' from zhangwu;
  • 模糊查询(通配符:‘xxx’;‘%xxx’;‘xxx%’; '%xxx%', '_____'-->匹配字符数)
select * from 表名 where 列名 like 'xxx';
  • 排序查询(默认为升序)
order by 列名 [desc][asc];
  • 聚合函数(统计函数)
    • count()
    • sum()
    • max()
    • min()
    • avg()
  • 分组查询
    • 分组查询之后不能使用where关键字,而是用having;
      • where和having的区别
        • 1:having是在分组后对数据进行过滤,where反之;
        • 2:having后面可以使用分组函数(统计函数),where反之;
Group by 被合并的列 /*必须结合聚合函数使用*/

猜你喜欢

转载自blog.csdn.net/weixin_43660263/article/details/86617255
39