登录Mysql
基本流程
- 以管理员身份启动cmd
- 进入mysql/bin所在目录
- 输入“net start mysql”来启动mysql服务
- 输入“mysql -hlocalhost -P+端口(默认是3306) -uroot -p+密码”
-h主机名,后面跟要访问的数据库服务器地址,默认是localhost
-u用户名,后面跟登陆数据的用户名,第一次安装以后,默认是root
-p密码,一般不直接输入,而是在回车以后,用保密方式输入
连接Navicat时的问题
- 连接失败-报错2059异常
SQL语句
执行语句,不区分大小写
包括表名、关键字、字段名
在修改的时候,也是不区分大小写的,所以会影响两行数据
通用语句
- 查看所有数据库:show databases;
- 选中某个数据库:use DBname;
- 查询当前数据库所有表:show tables;
- 查看表的结构:desc table_name;
- 查看建表语句:show create table table_name;
主要的系统数据库表
数据查询语句(Data Query Language---DQL)
- 查询某表所有数据:select * from Table_Name;
- 条件查询
- where条件:select * from Table_Name where id=2;
- union联合查询:select * from T1 where id=2 union select * from T1 where pass=111;
前后两个sql查询语句互不干扰,前后两个查询语句的查询字段数量要一致(如:前后都是“*”或者都是“id”)
- 排序操作
- order by 字段名称
实际应用中,用来猜解字段列数
eg: order by 100;//按第100列来排序,如果没有第100列,就会报错
数据操作语句(Data Manipulation Language---DML)
操作对象:数据库表中的某个具体字段的数据的增、删、改
INSERT插入数据
UPDATE修改数据
DELETE删除数据
数据定义语句(Data Definition Language---DDL)
列名、字段属性等
正是由于数据定义类的语句存在着多种操作对象,所以通常要加上table等标记
eg:alter table t_student xxxxxxxx
create table t_teacher xxxxxxx
create database test1 xxxxxxx
而表内数据处理(add、update、delete、select)只是涉及当前表,所以不需要加”table“这种标记类型,只需要给出表名就行了
CREATE创建对象
- 创建数据库时的参数设置
- 浮点数类型定义:double(4,1)
- 总宽度为4,小数点保留一位,并且不会像int型一样自动扩充
- varchar和char的区别:varchar(5)则该字段字符长度为0~5,而char(5)代表该字段字符长度只能是5
- BLOB:二进制长文本
- TEXT:长文本
- 长文本通常用于在varchar类型的65535字符都不能表示的时候使用
- data:年-月-日
- datatime:年-月-日-时-分-秒
ALTER修改对象
- change语句:alter table 表名 change 旧列名 新列名 新列类型;
- modify语句:alter table 表名 modify 已有列名 新的列类型;
- eg:insert into t_student values(null,'王五',null,19,sysdate(),'JAVA-1班','jqk@qq.com');
当使用如上所示的插入语句时,主键的”sno“自增效果仍然有效,但是‘sex’列的default效果无效,同时,auto_increment(自增效果)是在你最新添加的sno序号的基础上+1
eg:如果你添加了1005和1006,但是又删除了1006,则下次自增会从1007开始而不是从1006
同时,主键不一定必须要保持自增,要因情况而定
DROP删除对象
表的完整性约束
非外键约束
列级约束和 表级约束(就是在定义表的最后一行统一添加,eg:要把哪行设为主键,把哪行设置为not null等等, 但是”自增“(auto_increment)和”非空“(not null)只能是列级约束 )
建表后添加约束的方法
添加约束,相当于修改了建表语句
自增的列必须是主键,但主键的列不一定要自增
constraint xxx(约束条件重命名)
对于一个表添加的约束如下图所示:
对于额外向表中某列添加约束时:
如果是 Key所在列的约束or 检查(check)型约束,就用 add constraint 重命名 + primary key/ unique()等
如果是 Extra所在列的约束,就用modify的方式修改
外键约束
注意:外键约束一定是表级约束
先删除主表,再删除副表
数据控制语句(Data Control Language---DCL)
GRANT授予用户某种权限
REVOKE回收授予的某种权限
事务控制语句(Transaction Control Language---TCL)
START TRANSACTION开启事务
COMMIT提交事务
ROLLBACK回滚事务
SET TRANSACTION设置事务属性