MySQL的简介、启动及其DDL
MySQL的各项配置:
默认会启用TCP/IP网络;
默认客户端/服务器端口:3306;
将数据库的BIN目录写入Windows的的path环境变量;
默认不允许root用户在其他机器上远程登录;
MySQL正在使用的配置文件:my.ini,可以通过my.ini修改一些配置:
default-character-set=utf8 客户端默认字符集;
character-set-server=utf8 服务器默认字符集,即创建数据库和表的默认字符集;
port=3306 my.ini中有两个,即客户端和服务器端都指定为3306;
default-storage-engine=INNODB 默认存储引擎
1、SQL
SQL全称是结构化查询语言,是关系数据库的标准语言。
根据功能划分,SQL语言主要由以下几部分组成。
- DML——数据操纵语言,用来插入、修改和删除数据库中的数据。
- DDL——数据定义语言,建立数据库、数据库对象和定义其列。
- DQL——数据查询语言,对数据库中的数据进行查询
- DCL——数据控制语言,控制数据库组件的存取许可,存取权限等。如GRANT、REVOKE。
2、windows中启动、登录MySQL
(MySQL在默认的情况下查询是不区分大小写的,在配置修改后,需要重启服务才有效)
DOS启动服务:
net start mysql 启动MYSQL服务
net stop mysql 停止MYSQL服务
命令行登陆:(也可以通过MySQL自带的MySQL Command Line Client)
mysql –u root –p (接下里会提示输入密码)
ps:如果是连接到另外的机器上,则需要加入一个参数:-h 机器IP
3、显示基本信息:
status; 显示当前MySQL服务的运行状态
select version(); 显示当前MySQL版本
select current_date; 显示当前日期(大小写通用)
select now(); 显示当前日期、时间
select database(); 显示当前正在使用的数据库
help content 查看帮助文档目录列表
4、通过DDL进行数据库操作
show databases; 显示所有数据库
create database <database name>; 创建数据库
drop database <database name> 直接删除数据库,不提醒
mysql admin drop <database name> 删除数据库前,有提示
use <database name>; 选择数据库
show tables; 显示数据库中的所有表
5、创建表
/*建表的语法*/
create table [if not exist] Tablename(
字段一 数据类型 [字段属性|约束] [索引] [注释] ,
字段二 数据类型 [字段属性|约束] [索引] [注释] ,
.........
)[表类型][表字符集][注释] /*创建一个InnoDB类型,字符集为utf-8,备注为“test Table”的表*/
/*在这里,我惊喜地发现,单引号、双引号可以使用在comment关键字中!!*/
create table test(id int(4))engine=innodb,charset=utf8,comment="test Table";
通过使用MySQL WorkBench,终于找到了标准语法:
/*在5.7版本中,数据库名称、表的名称都可以用``包围,加强表达,也可以不加*/
CREATE TABLE `myschool`.`test`(`id` INT(4) NOT NULL DEFAULT 1 COMMENT '测试编号', PRIMARY KEY (`id`)); /*现在创建一个有各种属性的表*/
/*id类型为int()4,非空,默认值为1,名为测试编号*/
/*这里指定PK的方式为在定义完所有字段后指定*/
CREATE TABLE `myschool`.`mytsest` (
`id` INT(4) NOT NULL DEFAULT 1 COMMENT '测试编号',
PRIMARY KEY (`id`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COMMENT = '测试表'; /*我还发现,自增AI和默认Default是冲突的,至少这里是,可能因为AI指定了默认值*/
SQL为字段提供了各种约束和属性来保证数据的完整性。
其中主键约束是十分重要的约束,可以使用数据库表中的某一字段or几个字段来唯一标识所有记录。
(1)单字段主键
/*在定义字段的同时指定主键*/
create table student(
studentNumb INT(4) PRIMARY KEY,
.....
) /*在定义完所有字段后指定主键*/
create table student(
studentNumb INT(4),
studentName VARCHAR(45),
....
PRIMARY KEY(id)
)
(2)多字段联合主键
/*主键由多字段组成*/
create table student(
id INT(4),
name VARCHAR(11),
...
PRIMARY KEY(id,name)
)
(3)为表添加注释、设置编码格式
create table student(
id INT(4) COMMENT '编号',
name VARCHAR(11),
...
PRIMARY KEY(id,name)
)ENGINE=InnoDB,CHARSET=UTF-8,COMMENT ='学生表'
6、查看表
show tables;
describe <table name>; 展示表的结构
desc <table name>; 展示表的结构
select * from <table name> 显示表中的内容
DOS窗口默认字符集为GBK格式,如果当前MySQL的默认编码格式非GBK,可能会乱码,可以在输出信息之前执行以下语句:
set names gbk;
7、修改表结构
首先,可以执行“HELP ALTER TABLE”查看各种需改表结构的语句
(1)修改表名
alter table student rename studentinfo;
(2)添加字段(默认添加到末尾)
/*经过检验,本版本中,新增字段时的字段名无需添加引号(单、双都会报错)*/
alter table student add province varchar(30); /*指定新增字段的位置,可以使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)*/
alter table student add city varchar(20) after province;
(3)修改字段——修改字段名和字段属性
/*只修改字段的属性*/
/*把字段province的类型从varchar(30)改为varchar(20)*/
alter table student modify province varchar(20); /*name为修改后的字段名,同时可以修改字段属性,也可以和原有的一致,但是不能为空*/
alter table student CHANGE country city char(20) not null;
/*在我的机器上,这个语句报错不能执行。因为我在第一次定义country字段时,只设置了字段类型一个属性,NN属性并没有设置;现在修改后,我新增了NN属性,报错!*/ alter table student change country city varchar(20);
/*修改后,执行成功!country属性名改为了city*/
/*此外,目前为止,所有为名字添加引号的操作都是不必要的,甚至都是报错。这与书本的实例完全不同*/
(4)删除字段——将table中的某个字段从表中移除
/*数据表中只剩余一个字段则无法使用DROP来删除字段*/
alter table student drop city;
(5)添加主键约束
/*语法如下*/
alter table <TableName> add constraint <主键名> primary key <表名>(<主键字段>); /*将grade表中的gradeId设置为主键*/
alter table grade add constraint pk_grade primary key grade(gradeId);
(6)添加外键约束
/*语法如下*/
alter table <TableName> add constraint <外键名> foreign key <外键字段>references <关联表名>(<关联字段>); /*设置student表的gradeID字段与grade表的gradeId字段建立主外键关联*/
alter table student add constraint fk_student foreign key gradeId references grade(gradeId); /*InnoDB类型的表才支持主、外键约束,因此保证相关表都为InnoDB型*/
/*对于MyISAM类型的表,可以通过建立逻辑关系保证数据的完整性和一致性*/
8、删除表
delete from <table name>; 清空表中内容
drop table if exists <table name> 删除表(操作之前确认是否有重要数据,可以先备份)
9、使用MySQL系统帮助文档
help contents;
再使用help命令查看相关的具体内容。
MySQL的简介、启动及其DDL的更多相关文章
- mysql 5.6 原生Online DDL解析
http://seanlook.com/2016/05/24/mysql-online-ddl-concept/ 做MySQL的都知道,数据库操作里面,DDL操作(比如CREATE,DROP,ALTE ...
- (转)mysql 5.6 原生Online DDL解析
做MySQL的都知道,数据库操作里面,DDL操作(比如CREATE,DROP,ALTER等)代价是非常高的,特别是在单表上千万的情况下,加个索引或改个列类型,就有可能堵塞整个表的读写. 然后 mysq ...
- MySQL日志简介
一.MySQL日志简介 二.错误日志 作用: 记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志. 默认位置: $MYSQL_HOME/data/ 开启方式:(MyS ...
- 数据库----ORACLE和MYSQL数据库简介
一.什么是数据库? 数据库(Database---DB)按照组织.储存和管理数据的仓库.(理解以下三个概念) 数据(Data)用来描述事物的记录都可称数据,如文字音乐图像. 数据库系统(Dat ...
- MySql免安装版安装配置,附MySQL服务无法启动解决方案
文首提要: 我下载的MySQL版本是:mysql-5.7.17-winx64.zip Archive版:系统:Windows7 64位. 一.解压文件 下载好My ...
- MySQL 安装和启动服务,“本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”
MySQL 安装和启动服务,以及遇到的问题 MySQL版本: mysql-5.7.13-winx64.zip (免安装,解压放到程序文件夹即可,比如 C:\Program Files\mysql-5. ...
- Linux CentOS下如何确认MySQL服务已经启动
Linux CentOS一般做为服务器使用,因此,MySQL服务应该随开机自动启动的.正常情况下,查看开机自动启动的服务使用chkconfig命令,如下: #chkconfig --list 实际使用 ...
- mysql 4种启动方式
mysql 4种启动方式 都是去调用mysqld文件 1. mysqld 启动 进入mysqld文件所在目录(/../libexec/mysqld) ./mysqld --defaults-file= ...
- mysql-5.7.9-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法
问题背景 最新解压版本的mysql 解压安装的时候报错 D:\mysql-5.7.9-winx64\bin>net start mysql MySQL 服务正在启动 . MySQL 服务无法启动 ...
- Ubuntu下关闭apache和mysql的开机启动
Ubuntu下关闭apache和mysql的开机启动 sudo apt-get install sysv-rc-conf sudo sysv-rc-conf sudo vi /etc/init/mys ...
随机推荐
- flask 部署
学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...
- 介绍 14 个 JavaScript 的框架和库
Javascript 得到了众多的技术领导者的拥护和支持,其中一位就是 WordPress 的作者 Matt Mullenweg , 他表示 WordPress 开发者 应该学习 JavaScript ...
- MongDB的DateZone
先理解:Date本身是没有格式的,只是一个毫秒数,要显示成某种格式就一定是字符串 https://github.com/ewcmsfree/ewcms/wiki/Help-mongo-java-dri ...
- iTerm2使用Profiles自动登录
http://blog.csdn.net/wandershi/article/details/75088310 1.创建Profiles文件 cd ~/.ssh/iTerm2SSH/ vi 172.1 ...
- LeetCode 279. 完全平方数(Perfect Squares)
题目描述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出: 3 解释 ...
- HSBToolBox
HSBToolBox.exe Unzip all files to the folder where Hearthbuddy.exeThen just run HSBToolBox.exe [asse ...
- JVM菜鸟进阶高手之路一[z]
https://mp.weixin.qq.com/s/qD1LFmsOiqZHD8iZX97OfA? 问题现象 代码如下,使用 ParNew + Serial Old 回收器组合与使用 ParNew ...
- jQuery.extend函数
http://www.cnblogs.com/luckboy/archive/2009/06/25/1510870.html 1.扩展jQuery静态方法. 1$.extend({ 2test:fun ...
- openstack核心组件--neutron网络服务(4)
一.neutron 介绍: Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...
- 【C# in depth 第三版】温故而知新(1) (转)
声明 本文欢迎转载,原文地址:http://www.cnblogs.com/DjlNet/p/7192354.html 前言 关于这本书(<深入理解C# 第三版>)的详细情况以及好坏,自行 ...