登录Mysql

基本流程

  1. 以管理员身份启动cmd
  2. 进入mysql/bin所在目录
  3. 输入“net start mysql”来启动mysql服务
  4. 输入“mysql -hlocalhost -P+端口(默认是3306) -uroot -p+密码”

-h主机名,后面跟要访问的数据库服务器地址,默认是localhost
-u用户名,后面跟登陆数据的用户名,第一次安装以后,默认是root
-p密码,一般不直接输入,而是在回车以后,用保密方式输入

连接Navicat时的问题

  • 连接失败-报错2059异常



confluence连接到mysql 连接mysql语句_数据库


confluence连接到mysql 连接mysql语句_数据库_02


SQL语句

执行语句,不区分大小写

包括表名、关键字、字段名


confluence连接到mysql 连接mysql语句_Powered by 金山文档_03


在修改的时候,也是不区分大小写的,所以会影响两行数据

通用语句

  • 查看所有数据库:show databases;
  • 选中某个数据库:use DBname;
  • 查询当前数据库所有表:show tables;
  • 查看表的结构:desc table_name;
  • 查看建表语句:show create table table_name;

主要的系统数据库表


confluence连接到mysql 连接mysql语句_confluence连接到mysql_04


数据查询语句(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删除数据


confluence连接到mysql 连接mysql语句_数据库_05


数据定义语句(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创建对象

  1. 创建数据库时的参数设置


confluence连接到mysql 连接mysql语句_mysql_06



confluence连接到mysql 连接mysql语句_Powered by 金山文档_07


  1. 浮点数类型定义:double(4,1)
  2. 总宽度为4,小数点保留一位,并且不会像int型一样自动扩充
  3. varchar和char的区别:varchar(5)则该字段字符长度为0~5,而char(5)代表该字段字符长度只能是5
  4. BLOB:二进制长文本
  5. TEXT:长文本
  6. 长文本通常用于在varchar类型的65535字符都不能表示的时候使用
  7. data:年-月-日
  8. datatime:年-月-日-时-分-秒


confluence连接到mysql 连接mysql语句_Powered by 金山文档_08


ALTER修改对象

  1. change语句:alter table 表名 change 旧列名 新列名 新列类型;
  2. modify语句:alter table 表名 modify 已有列名 新的列类型;
  3. 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)只能是列级约束 )


confluence连接到mysql 连接mysql语句_数据库_09


建表后添加约束的方法

添加约束,相当于修改了建表语句


confluence连接到mysql 连接mysql语句_mysql_10


confluence连接到mysql 连接mysql语句_sql_11


自增的列必须是主键,但主键的列不一定要自增

constraint xxx(约束条件重命名)

对于一个表添加的约束如下图所示:


confluence连接到mysql 连接mysql语句_数据库_12


对于额外向表中某列添加约束时:
如果是 Key所在列的约束or 检查(check)型约束,就用 add constraint 重命名 + primary key/ unique()等
如果是 Extra所在列的约束,就用modify的方式修改

外键约束

注意:外键约束一定是表级约束
先删除主表,再删除副表


confluence连接到mysql 连接mysql语句_mysql_13


confluence连接到mysql 连接mysql语句_sql_14


数据控制语句(Data Control Language---DCL)

GRANT授予用户某种权限

REVOKE回收授予的某种权限

事务控制语句(Transaction Control Language---TCL)

START TRANSACTION开启事务

COMMIT提交事务

ROLLBACK回滚事务

SET TRANSACTION设置事务属性