MySql数据库学习笔记(1)

MySql数据库

下载地址
https://dev.mysql.com/downloads/mysql/5.1.html#downloads

连接到本机上的MYSQL
mysql -u root -p

  1. 创建数据库
    命令:create database <数据库名>;
    create database Myschool;

  2. 查看数据库
    命令:show databases;

  3. 创建表
    ERROR 1046 (3D000): No database selected //未选中数据库
    Database changed
    mysql> use Myschool;
    Database changed
    mysql> create table subject
    -> (SubjectNo int primary key,
    -> SubjectName varchar(50),
    -> ClassHour int,
    -> GreadID int);

  4. 查看所有表;
    mysql> show tables;

  5. 查看创建表结构
    mysql> show create table Subject;

  6. 删除数据库
    命令:drop database <数据库名>
    例如:删除名为 xhkdb的数据库
    mysql> drop database Myschool;

数据类型:
varchar(5)-->变长;
char(5)-->定长;
Can't connect to MySQL server on localhost \没有启动MySQL服务

创建Student表格
mysql> create table Student
(StudentNo int(4) not null comment'学号',
LoginPwd varchar(20),
StudentName varchar(20) comment'学生姓名',
Sex tinyint(1) comment'性别,取值0或者1',
GradeID int(11) comment '年级编号',
Phone varchar(50) not null comment '联系电话允许为空',
Adress varchar(255) not null comment '地址允许为空',
BornDate datetime comment '出生时间',
Email varchar(50) comment '邮箱账号允许为空',
IdentityCard varchar(18) comment '身份证号码');

SHOW ENGINES

显示存储引擎的状态信息。对于检查一个存储引擎是否被支持,或者对于查看默认引擎是什么,本语句十分有用。
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
MyISAM :节约空间及相应速度
InnoDB:安全性,事务处理及多用户操作数据表

mysql> show variables like 'datadir';
+---------------+---------------------------------------------+
| Variable_name | Value |
+---------------+---------------------------------------------+
| datadir | C:\ProgramData\MySQL\MySQL Server 5.7\Data\ |
+---------------+---------------------------------------------+

修改表结构:

  1. 添加字段
    mysql> alter table Student add CollegeMajor varchar(50);
    语法:ALTER TABLE table_name ADD field_name field_type;

  2. 查看表结构:
    语法:desc tabl_name;
    mysql> describe Student;
    或: mysql> desc Student;
    +--------------+--------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +--------------+--------------+------+-----+---------+-------+
    | StudentNo | int(4) | NO | | NULL | |
    | LoginPwd | varchar(20) | YES | | NULL | |
    | StudentName | varchar(20) | YES | | NULL | |
    | Sex | tinyint(1) | YES | | NULL | |
    | GradeID | int(11) | YES | | NULL | |
    | Phone | varchar(50) | NO | | NULL | |
    | Adress | varchar(255) | NO | | NULL | |
    | BornDate | datetime | YES | | NULL | |
    | Email | varchar(50) | YES | | NULL | |
    | IdentityCard | varchar(18) | YES | | NULL | |
    | CollegeMajor | varchar(50) | YES | | NULL | |
    +--------------+--------------+------+-----+---------+-------+

  3. 修改表名;
    mysql> alter table t_test rename tbl_test;

  4. 修改列名;
    mysql> alter table Student change CollegeMajor2 Interest varchar(255);

  5. 修改列属性;
    mysql> alter table Student Modify Adress char(255);

  6. 删除列;
    mysql> alter table Student drop is_deleted;

  7. 删除表;
    mysql> drop table t_test;

MySQL数据库管理

DML:数据操作语言,用于操作数据库对象包含的数据
包括:
- INSERT ; 
- UPDATE ;
- DELETE ;

DML

insert

1. mysql> insert into Grade(GradeId,GradeName) value(1,'大一');
2. mysql> insert into Grade value(2,'大二');
3. mysql> insert into Grade value(3,'大三'),(4,'大四');
4. mysql> insert into Grade(GradeName)
-> select  GradeName from Grade ;

1. 修改字段为自动增长
mysql> alter table Grade modify GradeID int auto_increment;

2. 修改表编码
mysql> alter table Grade charset=utf8;

base 查询:	

mysql> select * from Grade;
+---------+-----------+
| GradeID | GradeName |
+---------+-----------+
| 1 | 大一 |
+---------+-----------+

update

mysql> update Grade set GradeName ='二年级' where GradeID=2;

mysql> update Grade set GradeName = '二二级' where GradeID =6 or GradeID = 13;

('高等数学-1',120,1),('高等数学-2',110,2),('高等数学-3',100,3),('高等数学-4',130,4);```

```mysql> update subject set ClassHour = ClassHour-10 where classhour >110  and GreadID =1;```


mysql> select * from subject;
+-----------+-------------+-----------+---------+
| SubjectNo | SubjectName | ClassHour | GreadID |
+-----------+-------------+-----------+---------+
|         1 | 高等数学-1  |       110 |       1 |
|         2 | 高等数学-2  |       110 |       2 |
|         3 | 高等数学-1  |       110 |       1 |
|         4 | 高等数学-2  |       110 |       2 |
|         5 | 高等数学-3  |       100 |       3 |
|         6 | 高等数学-4  |       130 |       4 |
+-----------+-------------+-----------+---------+

ERROR 1093 (HY000): You can't specify target table 'subject' for update in FROM clause

select ClassHour from subject where SubjectNo = 6

update subject set ClassHour =
(select ClassHour from
(select ClassHour from subject 
where subjectNO =6) as ch ) //as ch 作为临时表
where SubjectNo =1;
posted @ 2017-05-26 16:57  一粒飞鸿  阅读(214)  评论(0编辑  收藏  举报