一,数据库
--1,概述
存储和管理数据的一个仓库,分为两种数据库:关系型数据库和非关系型数据库
关系型数据库:把数据组织成行和列的类似表的结构
非关系型数据库:数据间的关系不紧密-NoSQL
关系型数据库产品:MySQL:免费的 / Oracle:收费的
英文是database/DB
--2,MySQL数据库
--安装mysql服务器端:
-设置端口号(默认是3306) + 密码(root) + 编码(默认是 latin1->utf-8)
--如何检查数据库是否安装成功?
--执行DOS命令:
-找到开始位置的MySQL-MySQL Command line Client-输入 密 码-展示Welcome就
可以了
-win+r-输入cmd-输入命令:
C:\Users\Administrator>mysql -uroot -proot
-展示Welcome就可以了
--用客户端工具连接:
点击连接-输入连接名-输入密码(检查端口号)-连接测试-连接成功-确定
--3,数据库的结构
--数据库--表--行(一条一条的记录)和列(字段)
二,SQL语言
--1,概述
用来操作数据库的语言。可以对数据库里的数据进行CRUD增删改查
分类:DML-数据操纵语言(CRUD)
DDL-数据库定义语言(创建库、创建表)
DCL-数据库控制语言(分配具体权限)
DQL-数据库的查询语言(各种查的语法)
--2,用法:CRUD
--数据库:查询、创建、删除库(谨慎)
--表:查询、创建、删除、修改
--!!!记录:创建、查询、删除、修改
--3,操作数据库的SQL
--查询所有数据库:show databases;
--新建数据库:create database 数据库名;
--新建数据库:create database 数据库名 default character set utf8;
--删除数据库:drop database 数据库名;
--4,操作数据表的SQL
--使用指定数据库:use 数据库名;
--查询所有数据表:show tables;
--新建数据表:
字段类型:int/long double/float char/varchar
create table 表名(
字段1名字 字段类型(字段长度),
字段2名字 字段类型(字段长度),
字段3名字 字段类型(字段长度)
)
mysql> create table tb_door(
-> id int(11),
-> door_name varchar(100),
-> tel varchar(20)
-> );
mysql> create table tb_order_detail(
-> id int(11),
-> order_id int(11),
-> num int(4),
-> item varchar(30)
-> );
--查看数据表结构:desc 表名
mysql> desc tb_door;
--修改数据表:alter table 表名 add column 字段名 字段类型(字段长度)
mysql> alter table tb_door add column addr varchar(100);
mysql> desc tb_door;
--删除数据表:drop table 表名;
mysql> drop table tb_order_detail;
--5,!!!!操作记录的SQL
--查询记录:select 字段名 / * from 表名
mysql> select * from student;
--添加记录:insert into 表名 values(字段1的值,字段2的值,字段3的值);
mysql> set names gbk; #防止中文乱码
mysql> insert into student values(1,'张三',18);
--修改记录:update 表名 set 字段名 = 字段值
mysql> update student set age=100;
mysql> update student set name='tony'; #字段如果是字符串要加'??'
--删除记录:delete from 表名
mysql> delete from student;
三,字段的约束
--1,主键约束
--是指可以给指定的字段添加一个主键约束,来达到 主键的值是唯一的+不能位空 的 效果
--mysql> create table a(id int);#id不是主键可以重复可以为空
--mysql> create table b(id int primary key);#id是主键必须唯一不能为空
--mysql> create table c(id int primary key auto_increment);#主键自动 递增(从1开始)
--2,非空约束
--是指给特定的字段,添加非空约束,达到 字段值不能为空 的效果
--mysql> create table d(id int primary key auto_increment,
-> name varchar(10) not null #not null就是对name字段的非空约束
-> );
--3,唯一约束
--是指给字段加上唯一约束,达到 字段的值必须唯一 的效果
--mysql> create table e(id int primary key auto_increment,
-> age int not null unique #unique是对age字段的值的唯一约束
-> );
四,使用客户端工具
--1,数据库的操作
右键-新建数据库-输入数据库名和编码(utf8)-确定
--2,表的操作
新建表-添加字段名,字段类型,字段长度-添加栏位-主键-自动递增-保存-输入表名-确定
--3,记录的操作
双击打开表-点+-√
五,基础函数
--1,概述
MySQL提供了很多函数,可以快速操作数据.
--2,各种函数的使用
--基本函数:lower\upper\length\substr\concat\replace\ifnull\uuid
--小数的函数:round\ceil \floor
--日期的函数:now\year\ month \ day\hour\minute \second\转义字符
--练习
#查看表结构
desc dept;
select * from dept;
#MySQL的基本函数们
select * from dept; #查询所有字段的值-低效
select dname from dept; #只查询dname字段的值-高效
select dname,deptno from dept; #只查询dname,deptno字段的值-高效
select dname,lower(dname) from dept;#lower(参数)-把参数变小写
select dname,upper(dname) from dept;#upper(参数)-把参数变大写
select dname,upper(dname),lower(dname) from dept;#查3列
#length(参数)-获取参数的长度
select dname,length(dname),loc,length(loc) from dept;
#substr(1,2)-1是要截取谁2是从哪儿开始(下标从1开始)
select dname,substr(dname,3) from dept;
#substr(1,2,3)-1是要截取谁2是从哪儿开始(下标从1开始)3是截取几个
select dname,substr(dname,2,3) from dept;
#concat()-拼接字符串
select dname,concat(dname,'hello') from dept;
(dname字段下的所有值后 面 都 加了hello)
select dname,concat(dname,"world") from dept;
select dname,concat(dname,"world","123") from dept;
(把加了world的值改成123)
#replace(1,2,3)替换-1是要替换的字段是谁2是要被替换的字符是啥3是新字符
#Mysql里整数可以简写,字符必须加''或者""
select dname,replace(dname,'c',6) from dept;
select * from emp;
#ifnull(1,2)-1是字段名2是要被替换成的值
#ifnull如果是null可以替换成新值
select comm,ifnull(comm,1) from emp;
#对小数的处理
#round(四舍五入) & ceil(向上取整) & floor(全舍)
select comm,ceil(comm),floor(comm),round(comm) from emp;
#对日期数据的操作
select now() ; #获取年月日时分秒
select CURDATE(); #获取年月日
select CURTIME(); #获取时分秒