day8-23(MySQL初涉及命令大全)

参考博客:MySQL命令大全

一.启动服务指令

@:net start mysql
MySQL 服务正在启动 .....
MySQL 服务已经启动成功。

2.登录指令

@:mysql -uroot -hlocalhost -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2

3.查看所有库的指令

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
6 rows in set (0.06 sec)

4.使用库指令

mysql> use sys
Database changed

5.查看表指令

mysql> show tables;
+-----------------------------------------------+
| Tables_in_sys                                 |
+-----------------------------------------------+
| host_summary                                  |
| host_summary_by_file_io                       |
| host_summary_by_file_io_type

6.建库的指令+使用库

mysql> create database ht1626;
Query OK, 1 row affected (0.10 sec)

mysql> use ht1626;
Database changed
mysql> show tables;
Empty set (0.00 sec)

7.建表的指令

create table student(
id int primary key auto_increment,
name varchar(20) not null,
age int default 18,
phoneNumber varchar(20) unique);

拓展:
MySQL的数据类型
    MySQL支持T-SQL(标准SQL)中所有数值类型(整形)并扩展了3个类型
                        无符号
        TINYINT      1字节        0-255      byte
        SMALLINT     2字节        0-655535   short        
        MEDIUMINT        3字节
        INT/INTEGER  4字节    (前面3个是mysql自己扩展的)
        BIGINT           8字节
        FLOAT            4字节
        DOUBLE       8字节
        DECIMAL(M,D)     精度.问题.
        ----------------------------------
        char(M)     定长字符串  Unicode
        varchar(M)  变长字符串   
        nchar(M)    定长      非Unicode
        nvarchar(M) 变长          
        tinyblob    不超过255个字符的二进制字符串
        tinytext    短文本
        blob
        text
        smallblob/mediumblob
        smalltext/mediumtext
        longblob
        longtext
        binary(M)  允许0-M个字节的定长字符串
        -------------------------------------
        date      4个字节     日期               格式为 YYYY-MM-DD
        time      3个字节     时间值或持续时间   格式为 HH:MM:SS
        year      1个字节     年份值       1901/2155
        datetime  8个字节     混合日期和时间的值 格式为 YYYY-MM-DD HH:MM:SS
        timestamp 4个字节     混合日期和时间值,时间戳 YYYYMMDDHHMMSS


        MySQL还支持Enum以及Set和复合类型.
        建表语句的格式位
create table 表名(
字段1 类型 约束条件,
字段2 类型 约束条件,
字段3 类型 约束条件
)
    MySQL中的约束
MySQL种有5种约束
primary key 主键约束
foreign key 外键约束
not null    非空
unique      唯一
default     默认值

auto_increment  自动增长.. 自动增长通常和主键结合使用
check 检查 .通过表达式验证数据.mysql不支持check,可以写check但是没效果.
约束可以分为:
    单列约束
    多列约束

8.系统显示的表结构

| student | CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `age` int(11) DEFAULT '18',
  `phoneNumber` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `phoneNumber` (`phoneNumber`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |


Engine:引擎  Charset 字符编码格式.
mysql> show engines;  //MySQL会默认提供的所有引擎
        +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| 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       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

9.查看MySQL当前默认的存储引擎

mysql> show variables like '%storage_engine%';
+----------------------------------+--------+
| Variable_name                    | Value  |
+----------------------------------+--------+
| default_storage_engine           | InnoDB |
| default_tmp_storage_engine       | InnoDB |
| disabled_storage_engines         |        |
| internal_tmp_disk_storage_engine | InnoDB |
+----------------------------------+--------+
4 rows in set, 1 warning (0.15 sec)

MySQL数据库的殷勤取决于安装MySQL时是如何编译的.如果要添加一个新引擎必须要重新编译MySQL.默认情况MySQL支持三个引擎:ISAM,MYISAM,HEAP.还有两个引擎也是可以使用的.INNODB和BDB.当然也可以自己通过使用MySQL++所提供的API自己写一个引擎.

ISAM: 读取的操作速度快,且不占用大量的内存和存储资源.缺点是ISAM不支持事务处理,也不能够容错.
MyISAM: 提供了ISAM中所没有索引和字段管理的功能.以及MyISAM还提供了一种表格锁定机制(Java中的锁)用来优化并发的读写.MyISAM强调了快速读写操作.缺点是不支持表损坏后的数据恢复.
InnoDB:该引擎就是由MySQL++API所实现的.完善了ISAM和MyISAM中不支持的内容.即该引擎支持事务等但是读写速度比ISAM或MyISAM要慢.

引擎的添加在建表时右括号外添加engine=”引擎名称” 就可以决定当前表使用什么引擎.在使用该语句之前最好先看下当前库是否拥有和支持你想要使用的引擎.

10.增删改查

Insert
    mysql> insert into student(name,phoneNumber) values('张三','11011911411086');
Query OK, 1 row affected (0.15 sec)

同时插入多条数据
    insert into student(name,phoneNumber) values('李四','11011911411087'),('王五','11011911411088'),('赵六','11011911411089');


Query  查询语句不允许使用select * from 表名
mysql> select id,name,age,phoneNumber from student;
+----+------+------+----------------+
| id | name | age  | phoneNumber    |
+----+------+------+----------------+
|  1 | 张三 |   18 | 11011911411086 |
+----+------+------+----------------+
1 row in set (0.10 sec)

mysql> select name from student;
+------+
| name |
+------+
| 张三 |
+------+

Update
mysql> update student set age = 25 where name = '王五';
Query OK, 1 row affected (0.15 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select id,name,age,phoneNumber from student;
+----+------+------+----------------+
| id | name | age  | phoneNumber    |
+----+------+------+----------------+
|  1 | 张三 |   18 | 11011911411086 |
|  2 | 李四 |   18 | 11011911411087 |
|  3 | 王五 |   25 | 11011911411088 |
|  4 | 赵六 |   18 | 11011911411089 |
+----+------+------+----------------+
4 rows in set (0.00 sec)

Delete

mysql> delete from student where id % 2 =  0;
Query OK, 2 rows affected (0.15 sec)

mysql> select id,name,age,phoneNumber from student;
+----+------+------+----------------+
| id | name | age  | phoneNumber    |
+----+------+------+----------------+
|  1 | 张三 |   18 | 11011911411086 |
|  3 | 王五 |   25 | 11011911411088 |
+----+------+------+----------------+
2 rows in set (0.00 sec)

//--当执行插入时如果语法正确因为值得问题比如违反唯一约束.插入这一操作会被执行.但是表中不会有记录.id如果是自动增长的会自动+1 当下个插入成功时会发现id跳了2次.
insert into student(name,phoneNumber) values('孙七','11011911411090')


=-----------------------------------------------------

数据库的连接就Java而言可以分为两种:
1.直连接 – jdbc
2.桥连接 – odbc 通常用于C#等微软的语言上.
在window上 路径: 控制面板 - > 管理工具 - > ODBC

Java上主流使用的是JDBC.(如果是Web开发.或EE级别.jdbc是面试中必问.实际应用中常用的.)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值