mysql的启动
mysql安装完成之后,和我们平常使用的软件不一样,他是没有快捷方式的。
1. 如何启动和停止mysql
a) 选择计算机—》点击右键—》选择管理—》服务和应用程序—》服务—》选择名称,输入M,就可以把M开头的应用全部显示出来
b) 刚安装好的mysql,启动类型是 《自动》,状态是《已启动》
c) 注意:启动类型是自动的话,我们每次开机的时候,这项应用就会随着开机启动,所以修改启动类型:选择 Mysql 点击右键 选择属性—》启动类型 选为《手动》。
d) 如果启动类型为《手动》,在开机的时候mysql没有启动。我们要使用的时候,需求去启动。 选择MySQL应用,点击右键 ,选择《启动》,MySQL正常启动
计算机-》右键 选择管理-》服务和应用程序 选择 服务
找到mysql服务 右键 属性 修改启动类型为 手动;
每次需要使用MySQL前 去启动服务
快速进入 服务界面 在cmd窗口 使用 services.msc
两种方式:
图形化操作:进入服务 手动启动
命令行:
启动:net start 服务名 net start mysql
停止:net stop 服务名 net stop mysql
使用DOS命令进入mysql
登录命令: mysql –u用户名 –p密码;
MySQL的常用命令:
a) Show databases; 查询已经存在的各个数据库
b) Use test; use 数据库名; 进入指定数据库名的数据库内
c) Show tables ; 查看数据库中全部的表
d) Create database 数据库名; 创建一个数据库名字是???
4.库的运维
登录MySQL命令登录数据库系统
mysql -u用户名 -p密码 案例:mysql -uroot -proot |
使用show语句找出数据库系统有哪些数据库
mysql> SHOW DATABASES; |
创建一个数据库MYSQLDATA
CREATE DATABASE 数据库名; CREATE DATABASE 数据库名 DEFAULT CHARSET='utf8'; mysql> CREATE DATABASE eduask; mysql>CREATE DATABASE eduask DEFAULT CHARSET='utf8'; |
进入对应的数据库
User 数据库名; mysql>use eduask; |
查看数据库中的表(必须进入数据库中使用)
mysql> SHOW TABLES; |
删除对应数据库
Drop database 数据库名 mysql> drop database eduask; |
5.MySQL数据类型
整型
MySQL数据类型 |
含义(有符号) |
tinyint(m) |
1个字节 范围(-128~127) |
smallint(m) |
2个字节 范围(-32768~32767) |
mediumint(m) |
3个字节 范围(-8388608~8388607) |
int(m) |
4个字节 范围(-2147483648~2147483647) |
bigint(m) |
8个字节 范围(+-9.22*10的18次方) |
浮点型(float和double)
MySQL数据类型 |
含义 |
float(m,d) |
单精度浮点型 8位精度(4字节) m总个数,d小数位 |
double(m,d) |
双精度浮点型 16位精度(8字节) m总个数,d小数位 |
字符串(char,varchar,_text)
MySQL数据类型 |
含义 |
char(n) |
固定长度,最多255个字符 |
varchar(n) |
可变长度,最多65535个字符 |
tinytext |
可变长度,最多255个字符 |
text |
可变长度,最多65535个字符 |
mediumtext |
可变长度,最多2的24次方-1个字符 |
longtext |
可变长度,最多2的32次方-1个字符 |
日期时间类型
MySQL数据类型 |
含义 |
date |
日期 '2008-12-2' |
time |
时间 '12:25:36' |
datetime |
日期时间 '2008-12-2 22:06:44' |
timestamp |
自动存储记录修改时间 |
6.表
表的标准创建语句
CREATE TABLE 表名( 字段1 数据类型 约束, 字段2 数据类型 约束, ... 字段n 数据类型 约束 ); 案例: CREATE TABLE STUDENT( SID INT PRIMARY KEY, SNAME VARCHAR(20) NOT NULL, SSEX CHAR(1), SAGE INT ) |
约束:
not null:非空约束,指定某列不为空
unique: 唯一约束,指定某列和几列组合的数据不能重复
primary key:主键约束,指定某列的数据不能重复、唯一
foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据
check:检查,指定一个表达式,用于检验指定数据
Not null
create table temp( id int not null, name varchar(255) not null default ‘abc’, sex char null ) |
Unique
create table temp ( id int not null, name varchar(25), password varchar(16), constraint uk_name_pwd unique(name) ); |
Primary key
create table temp ( id int primary key, name varchar(25), password varchar(16) );
设置主键自增:auto_increment create table temp ( id int auto_increment primary key, name varchar(25), password varchar(16) );
|
foreign key:
建立在两表或多张表中的关联关系,以保证数据完整性
注意:1.子表参照的值必须在主表被参照字段的值的范围内
2.如果主表中有值被参照,那么主表中的相应记录不能被删除
3.子表的外键参照的列只能是主表的主键列或唯一约束的列
CREATE TABLE student( sid INT PRIMARY KEY auto_increment, sname VARCHAR(20), scid INT,
-- FOREIGN KEY (scid) REFERENCES class(cid)
CONSTRAINT fk_scid FOREIGN key(scid) REFERENCES class(cid)
)ENGINE=INNODB;
DROP TABLE student; DROP TABLE class;
语法1: FOREIGN KEY (外键字段) REFERENCES 主表(主键字段); 语法2: CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 主表(主键字段); (外键名:fk_字段名) --------------------------- ENGINE : 引擎
mysql所特有一种数据存储机制 |
Check(MySQL数据库中,没有作用)
CREATE TABLE STUDENT( SID INT PRIMARY KEY, SNAME VARCHAR(20) NOT NULL, SSEX CHAR(1), SAGE INT check( sage<19) ) |
建表后操作表表结构:
查看表结构:
DESC 表名; mysql> desc student; |
修改列类型:
alter TABLE 表名 MODIFY 列名 目标类型; mysql> ALTER TABLE student MODIFY sid VARCHAR(10); |
增加列:
alter TABLE 表名 ADD 列名 类型; mysql>alter TABLE student ADD sage int; |
删除列:
alter TABLE 表名 DROP 列名; mysql> alter table student drop sname; |
修改列名:
alter TABLE 表名 CHANGE 旧列名 新列名 类型; mysql> ALTER TABLE student CHANGE aaa bbb INT; |
修改表名:
语法1: ALTER TABLE 表名 RENAME 新表名; 语法2: RENAME TABLE 旧表名 TO 新表名; mysql> alter table student rename stu; mysql> rename table student to stu; |