结构化查询语言SQL Structured Query Language
本质就是将大量的“数据值”通过数据库管理系统进行某种复杂但是逻辑结构上清晰有序的存储
一、常用术语
数据库database
数据库管理系统dbms
表(数据表)table
行row,记录record
字段field,列column
二、数据库
连接数据库 mysql -u root -p
查看所有数据库 show databases;
选择数据库 use mysql;
查看表 show tables;
查看所有数据 select * from user;
查看user里面的用户名和密码 select user,password from user;
创建数据库字符集utf8 create database php0307 charset utf8;
删除数据库 drop database php0307;
注意:
1.符号都是英文半角
2.结束符号是英文分号
3.可以多条命令一起执行
4.引号问题
三、windows窗口
windows 窗口命令
ipconfig 查看本机ip地址
ping ip地址 连接指定ip的机器
D:切换盘符
cd 目录切换
cd / 直接到根目录
cd../ 上级目录
cd ./wamp/bin/mysql 进入指定位置
cd d:/wamp/bin/mysql 绝对路径 (cd和后面有空格,就是命令和后面有空格)
cls 清屏
dir 查看当前目录的内容
tab键可以补全路径名称
四、表
创建表
create table [if not exists] 表名(字段1 数据类型 [约束或索引列表],字段2 数据类型 [约束或索引列表])[表选项列表];
创建用于登录的表
create table if not exists login(); 如果存在就不创建了
(另一种办法
drop table if exists login;
create table login();
这样会删掉老的表!)
查看表 必须先进入库 (若不执行 show databases 或 use 其他表则一直在这个库里)
show tables;(空为empty)
删除表 drop table www;
查看表结构 desc 表名; desc www;
出现的表格里面
Null 里面为 yes 则可以为空
Key 主键 (唯一标识,所以不可以重复)
default 默认值
数据类型 数值 int 时间日期 datatime 字数串 varhar
自增的条件 必须是主键 必须是int
create table zuoye0420( id int auto_increment not null, /*id 整形 自动累加 不能为空*/ f1 float comment '小数', /*f1 小数*/ f2 decimal(20,5) default 12.3, /*f2定点型 总长20 小数位数5 默认值12.3*/ f4 varchar(20) comment'f4字符长度20', id2 int, /*意图作为set_test表的外键*/ primary key(id), /*id为主键 既是约束也是索引*/ unique key(f1), /*唯一值 既是约束也是索引*/ key(f2), /*只是索引*/ foreign key (id2) references set_test(id) /*外键约束*/foreign key (字段名1,字段名2, .... ) references 表名2(字段名1,字段名2, .... ) ) comment = '这是一个建表大全语句', engine = MyIsam, /*表的存储引擎名*/ auto_increment = 1000; /*自动增加从1000开始*/
五、表选项
添加数据 在库里面操作
insert into login(userid,password,username,sex) values (‘zhangsan’,'123','张三','1');
字段和值一一对应
值的数据类型是字段的数据类型
当插入字段是表中全部字段时 字段可省略
insert into login values (‘zhangsan’,'123','张三','1');
不是全部字段 字段要写
添加多条数据时逗号分隔
insert into login(userid,password,username,sex) values (‘zhangsan’,'123','张三','1'),(‘zhangsan’,'123','张三','1');
删除语句 不加where则为全部删除
delete from login;
修改语句 全部修改了!
update login set name = ‘老王’,sex=0;
加条件删除修改 关键字 where 找数据 字段 = 值
delete from login where userid = ‘lisi’;
字段 = 值 写完整 把lisi 和 wangwu 的性别改为女 or为或者
update login sex = 0 where userid = ‘lisi’or userid = ‘wangwu’;
distinct 消除行,所以可以看有哪几类 在select 后 字段名之前
select distinct depart.count(*) from teacher; 能出depart的数量