Mysql | MariaDB | 常用操作 | 增删改查 | 表 | 数据库

用户权限

查看用户权限

select user,host from mysql.user;

修改用户权限

GRANT
  [权限] 
ON [.] 
TO [用户名]@[IP] 
IDENTIFIED BY [密码] 
# WITH GRANT OPTION;

需要刷新权限

FLUSH PRIVILEGES;

如果需要远程访问需要将mysql监听端口改成0.0.0.0

修改用户密码

set password for 'userName'@'%'=password('password')

数据库操作

查看所有数据库

show databases;

查看数据库所有表

show tables;

查看数据库大小

mysql查看数据库大小 - Withfeel - 博客园
1、进入information_schema 数据库(存放了其他的数据库的信息)

use information_schema;

2、查询所有数据的大小:

select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables;

3、查看指定数据库的大小:

比如查看数据库home的大小

select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='home';

4、查看指定数据库的某个表的大小

比如查看数据库home中 members 表的大小

select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='home' and table_name='members';

表操作

查看表结构

desc tableName;

删除数据表

drop删除内容和定义,释放空间。

drop table table_name ;

删除内容、释放空间但不删除定义,数据表的结构还在。

truncate table table_name ;

删除有外键约束的表时:

  • 删除之前先执行,删除外键约束
SET foreign_key_checks = 0
  • 删除完之后再执行,启动外键约束
SET foreign_key_checks = 1

修改字段

  • 新增id字段(自增,非空,主键)
alter table tableName add id int unsigned not Null auto_increment primary key;
  • 删出表字段
 alter table tableName drop colName;
  • 修改字段
alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
alter table 表名称 modify 字段名称 字段类型 [是否允许非空];
  • 删出主键
alter table table_test drop primary key;
  • 新增外键
alter table tableName1 add foreign key(colName1) references tableName2(colName2);

更新数据

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

获取表行数

select count(1) from tableName;
select count(*) from tableName;
select count(rowkey) from tableName;
select count(col) from tableName;
  1. select count(col1) from test;
    当col1 字段not null时,遍历索引idx_col1,每读取一条记录将count总数加1;
    当col1 字段允许为null,遍历索引idx_col1,每读取一条记录,先判断是否为null,不为null时将count总数加1。

  2. select count(id) from test;
    由于id是主键,具有唯一属性,所以只需要遍历主键索引,过程中不需要判断是否null,每读取一条记录将count总数加1。

  3. select count(1) from test;
    遍历整张表,但不取具体的行数据到内存,只是对于每返回的一行,server层都放一个数字’1’进去,每一行数据将count总数加1。

  4. select count() from test;
    遍历整张表,但对于count(
    ),MySQL做了优化,不会读取具体的行数据,只要读取到一行,就按行累加。

count(字段)的方式,如果字段上有索引,如果允许为null,对于每一个字段的值还要进行一次判断;如果字段上没有索引,那么也是要走主键索引。所以一般情况下,count(主键)快于count(字段)。
但是如果主键索引的数据行非常大,而字段索引的键值比较短,也就是说,遍历主键索引所读取的数据块要多于遍历二级索引的数据块,那么有可能count(字段)要快于count(主键)。

综合起来,几个count的效率排序如下:
count(*)>count(1)>count(主键)>count(字段)

在IntelliJ IDEA中连接MySQL数据库并完成基本的CRUD操作增删改查),你需要按照以下步骤进行: 1. **配置数据库连接**: - 打开IntelliJ IDEA,点击 "File" > "Settings"(Mac上是"IntelliJ IDEA" > "Preferences") > "Data Tools" > "Database", 点击"+"按钮添加新的数据源。 - 选择 "MySQL" 或者 "MariaDB", 输入相应的服务器地址、用户名、密码及数据库名。 2. **创建数据库连接**: - 完成上述设置后,会自动创建一个新的数据库连接。保存配置以便后续快速访问。 3. **设计结构** (如果还没有) : - 可以通过SQL查询编辑器("Run" > "Edit in SQL Console")创建或修改结构,例如 `CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50))`. 4. **插入数据(INSERT)**: - 使用IDEA的SQL工具执行 `INSERT INTO users (id, name) VALUES (1, 'John Doe')` 来添加新记录。 5. **查询数据(SELECT)**: - 在查询窗口执行 `SELECT * FROM users` 来获取所有数据,或者 `SELECT * FROM users WHERE id = 1` 来过滤特定条件的数据。 6. **更新数据(UPDATE)**: - 执行 `UPDATE users SET name = 'Jane Doe' WHERE id = 1` 更新指定记录。 7. **删除数据(DELETE)**: - 使用 `DELETE FROM users WHERE id = 1` 删除某个特定记录。 8. **编写业务代码**: - 如果你想在Java代码中操作数据库,可以使用JDBC(Java Database Connectivity)或者更高级的框架如MyBatis或Spring Data JPA。例如,使用JdbcTemplate或EntityManager: ```java import org.springframework.jdbc.core.JdbcTemplate; // 或 import javax.persistence.EntityManager; // ... JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); jdbcTemplate.update("UPDATE users SET name = ? WHERE id = ?", "New Name", 1); EntityManager entityManager = emFactory.createEntityManager(); entityManager.getTransaction().begin(); User user = entityManager.find(User.class, 1); // 查询 user.setName("Updated Name"); // 修改 entityManager.merge(user); // 提交事务 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值