登录数据库:MySQL-uroot -p123456
登录别人数据库:MySQL -h192.168.x.x -P3306 -uroot -p123456
注释:#
--加空格
1.数据库:Database,是按照一定的数据结构来组织存储和管理数据的仓库,
数据模块的三要素:数据结构,数据操作,数据约束
数据模型分类:层次模型,网状模型,关系模型
2.数据库管理系统:(Database Management System,DBMS)
是指数据库系统中对数据进行管理的软件系统,是数据库系统的核心
3.数据库管理员(Database administrator,DBA)
是负责对数据进行规划,设计,协调,维护和管理的人员
4.数据库系统(Database System,DBS)
数据库+数据库管理系统(开发工具)+应用程序+数据库管理员
5.数据库系统的特点
数据结构化 有数据安全性和完整性 数据的高独立性 数据由DBMS统一管理和控制 易于使用 便于扩展
优点:1)可将数据库持久化到硬盘 2)可存储大量数据 3)方便检索
6.LAMP的定义
Linux
Apache
MySQL
PHP
7.SQL语言包含4部分:
数据查询语言(DQL-Data Language)
数据操作语言(DML-Data Manipulation Language)
数据定义语言(DDL-Data Definition Language)
数据控制语言(DCL-Data Control Language)
8.DDL:数据库定义语言,比如创建,修改或删除数据库对象
create table :创建数据库表DCL
alter table:更改表结构,添加或修改列长度
drop table:删除表
create index:在表上创建索引
drop index:删除索引
drop database:删除库
如:drop database student;
9.DCL:数据库控制语言
grant:授予访问权限
revoke:撤消访问权限
commit:提交事务
rollback:回退事务
10.DML:数据库操作语言
insert:添加数据到数据库
update:修改数据库中数据
delete:删除数据库中的数据
11.DQL:数据库查询语言
select:查询数据库中的数据
12.关系型数据库(有且仅有一个节点,称为根节点)
oracle(产品免费,服务昂贵)
SQL Server:默认端口:1433
MySQL:默认端口:3306(开源,免费稳定性好)
DB2:默认端口5000(兼容性低)
PostgreSQL:默认端口5432
13.非关系型数据库,也称NoSQL,NoSQL指的是Not Only SQL
非关系型数据库为了处理海量数据
MongoD数据库:默认端口27017
Redis数据库:默认端口6379
14 SQL数据库
Mysql登录:mysql -u root -p
登出:exit或者quit或者\q
MySQL数据库系统表结构:
MySQL自带四个数据库:MySQL,information_schema,test,performance_schema
15.mysql常用命令
1) 显示所有字符集:show char set;
utf8,Gbk,Gb2312是字符集
2) 创建数据库,判断是否存在数据库,指定编码格式(默认字符)
create database[IF NOT EXISTS] 数据库名[default ] character set [=]默认字符集
举例:create database school charset utf8;
3)创建数据库:create database 数据库名
4)删除数据库:drop database[if exitsts] 数据库名
5)修改数据库的字符串:alter databases 数据库名[default] character set [=] 字符集
16.数据类型
字符串型
整形
浮点数,定点数(decimal)
日期
17.约束类型 非空约束 主键约束 唯一约束 默认约束 外键约束
关键字 not null primary key unique default foreign key
18.表结构操作
1)添加列:alter table reader add email varchar(30);
2)在已经存在的表添加新的列,指定位置
alter table 表明 add 新列名 数据类型 [约束条件] [first/after 列名];
3)修改列名
alter table 表名 change 旧列名 新列名 数据类型
4)修改列数据类型
alter table 表名 modify 列名 数据类型
5)修改列排列位置
alter table 表名 modify 列名1 数据类型 first|after 类名2
6)删除列
alter table 表名 drop 列名
19.表记录操作-更改结构
1)增加字段:alter table 表名 add 字段名 字段约束条件
2)删除字段:alter table 表名 drop 字段名
3)修改字段:alter table 表名 change 字段名 新字段名 字段约束条件
4)修改字段约束条件:alter table 表名 modify 字段名 字段约束条件
(1)插入数据:insert into 表名(列1....列N)values(值1.....值N);
举例:insert into student (id user) values(2,'chenzhen') ;
(2)直接插入数据:insert into 表名 values(值1.....值N);
举例:insert into student values(1 ,'张三');
注意事项:字符和日期型数字应包含在单引号中
删除数据:
删除所有数据:delete
举例:delete from student;
删除表中定义的数据:delete from 表名[whrer 条件]
举例:delete from student where id=1;
注意事项:如果不适用where语句,将删除表中所有数据;
delete语句不能删除某一列的值(可用update)
使用delete语句仅删除记录,不能删除表本身,如果要删除,用drop table
更改数据:update
update 表名 set 字段名=字段内容[where 条件];
举例:update student set age=35;
查询数据:select
select 列名 from 表名
举例:select * from student
select distinct id from student;
注意:distinct用于显示唯一的不同值
20.算数运算符:
不等于:<> (!=)
判断一个是否为空(或不为空):is(not )null
判断一个值是否在两个值直接:between ...and
判断一个值是(不是)in列表中的值:(not) in
通配符匹配:like
案例:
1:余额大于200的读者信息
select * from readerinfo where balance>200;
2:查看读者信息中,余额不等于200
select * from resderinfo where balance<> 200;
3:年龄不为空
select * from readerinfo where age is not null;
4:余额在350到450之 间
select * from resderinfo where balance between 350 and 450
5;获取张飞,李月这几个读者信息
select * from readerinfo where name in('张飞’,‘李月’);
6:名字是两个字,姓张
select * from readerinfo where name like '张_';
7:查询手机号以135开头
select * from readerinfo where like '135%';
21.子查询
在SQL语言中,一个select from where语句称为一个查询块,将一个查询块嵌套在另一个查询块的where子句或者having短语的条件中的查询叫做子查询,又叫嵌套查询
1)带有in谓词的子查询
举例:查询与zhangsan一个系所有的名字
select name from student where dept in(select dept from dept swhere name='zhangsan';
2)带有比较运算符的子查询
举例:查询与zhangsan一个系所有的名字
select name from student where dept =(select dept from dept swhere name='zhangsan';
3)带有any或者all谓词的子查询
查询一班学生年龄大于二班所有人
select name from class1 where age>all(select age from class2)
22.模糊查询
like模糊查询
like操作符用于在where字句中搜素列中的指定模式
通配符
% 代表零个或者多个字符(任意字符)
_ 代表一个字符